Statistics 从aPerl脚本计算平均值
我还在这里 我从一个非常专业的人那里得到了这段代码,我不敢问他这些基本问题……不管怎样,这是我现在的问题;这个Perl脚本打印由数字分隔的空格组成的列的中间值,我添加了一些东西来获得它的大小,现在我尝试获得同一列的总和。我做了,但没有得到结果,我没有选对专栏吗/stats.pl 1 columns.txtStatistics 从aPerl脚本计算平均值,statistics,Statistics,我还在这里 我从一个非常专业的人那里得到了这段代码,我不敢问他这些基本问题……不管怎样,这是我现在的问题;这个Perl脚本打印由数字分隔的空格组成的列的中间值,我添加了一些东西来获得它的大小,现在我尝试获得同一列的总和。我做了,但没有得到结果,我没有选对专栏吗/stats.pl 1 columns.txt #!/usr/bin/perl use strict; use warnings; my $index = shift; my $filename = shift; my $columns
#!/usr/bin/perl
use strict;
use warnings;
my $index = shift;
my $filename = shift;
my $columns = [];
open (my $fh, "<", $filename) or die "Unable to open $filename for reading\n";
for my $row (<$fh>) {
my @vals = split/\s+/, $row;
push @{$columns->[$_]}, $vals[$_] for 0 .. $#vals;
}
close $fh;
my @column = sort {$a <=> $b} @{$columns->[$index]};
my $offset = int($#column / 2);
my $length = 2 - @column % 2;
my @medians = splice(@column, $offset, $length);
my $median;
$median += $_ for @medians;
$median /= @medians;
print "MEDIAN = $median\n";
################################################
my @elements = @{$columns->[$index]};
my $size = @elements;
print "SIZE = $size\n";
exit 0;
#################################################
my $sum = @{$columns->[$index]};
for (my $size=0; $size < $sum; $size++) {
my $mean = $sum/$size;
};
print "$mean\n";
使用严格;
使用警告;
我的$index=shift;
我的$filename=shift;
我的$columns=[];
打开(my$fh,“确定一些提示,让您继续:
您可以将所有数字放入一个数组:
my @result = split(m/\d+/, $line);
#average
use List::Util qw(sum);
my $sum = sum(@result);
然后,您可以使用$result[$index]
访问各个列,其中index是要访问的列数
还请注意:
$total = $line + $total;
$count = $count + 1;
可以重写为:
$total += $line;
$count += 1;
最后,确保您正在读取该文件:
将“调试”打印放入while循环:
print $line, "\n";
这应该能让你走了:)好的,有一些建议可以让你走:
您可以将所有数字放入一个数组:
my @result = split(m/\d+/, $line);
#average
use List::Util qw(sum);
my $sum = sum(@result);
然后,您可以使用$result[$index]
访问各个列,其中index是要访问的列数
还请注意:
$total = $line + $total;
$count = $count + 1;
可以重写为:
$total += $line;
$count += 1;
最后,确保您正在读取该文件:
将“调试”打印放入while循环:
print $line, "\n";
这应该会让你开始:)你能发一行吗?对不起?你是说我的文件中的一行数字吗?453 454 232 329 200 89 349 69这是文件的一部分。所以你想要所有这些数字的平均值?还有不止一行?是的,先生。还有做一些其他的计算。你能发一行吗?对不起?你是说一行数字吗来自我的文件的BER?453 454 232 123 329 200 89 349 69这是文件的一部分。那么你想要所有这些数字的平均值吗?有不止一行?是的,先生。然后做一些其他计算。太感谢你了!我要尝试一下。你能用你的建议重写我上面的脚本吗?我是Perl新手,语法有很多问题x、 @Dav1我会的,但既然这是作业,你应该自己做:)谢谢,这不是全部的作业,我分步分解,全部工作将由我自己完成。太感谢你了!我要试试。你能用你的建议重写我上面的脚本吗?我是Perl新手,语法有很多问题。@Dav1我会的ld,但既然这是作业,你应该自己做:)无论如何,谢谢,这不是全部作业,我把它分步骤分解,全部工作将由我自己完成。