- 论坛徽章:
- 0
|
回复 4# lijie_perl
如果看小骆驼能写出你展示的代码,那已经相当不简单。
我帮你改了一下,希望能帮到你:- #!/usr/bin/perl -w
- use strict;
- my $row=3;
- my $column=3;
- my %hash;
- my %hash_sort;
- my %count;
- open (IN,"inputfile.txt");
- while ( <IN> )
- {
- if( m/\s?(\d+)\s+(\d+)\s+(\d+)/ ){
- my $index=($3-1)*$row+$2;
- push(@{$hash{$index}},$1);
- $count{$index}++;
- }
- }
- close(IN);
- foreach (keys %count) {
- push(@{$hash_sort{$count{$_}}},$_);
- }
- #统计每一个神经元上样本个数
- open (OUT,">outfile.txt");
- my %tmp;
- foreach my $value (sort {$b<=>$a} keys %hash_sort) {
- foreach my $key (sort {$a<=>$b} @{$hash_sort{$value}}) {
- print "第$key号神经元有样本$value个:"," @{$hash{$key}}\n";
- print OUT "第$key号神经元有样本$value个:"," @{$hash{$key}}\n";
- }
- }
- close(OUT);
- #矩阵格式转换
- open (OUT,">outfile1.txt");
- for my $x(1..$column){
- my @line = ();
- for my $y(1..$row){
- my $index=($y-1)*$row+$x;
- my $value = ($count{$index})?$count{$index}:0;
- push(@line,$value);
- }
- print OUT join("\t",@line),"\n";
- }
- close(OUT);
- <STDIN>;
复制代码 |
|