Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/unix/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Statistics 从aPerl脚本计算平均值_Statistics - Fatal编程技术网

Statistics 从aPerl脚本计算平均值

Statistics 从aPerl脚本计算平均值,statistics,Statistics,我还在这里 我从一个非常专业的人那里得到了这段代码,我不敢问他这些基本问题……不管怎样,这是我现在的问题;这个Perl脚本打印由数字分隔的空格组成的列的中间值,我添加了一些东西来获得它的大小,现在我尝试获得同一列的总和。我做了,但没有得到结果,我没有选对专栏吗/stats.pl 1 columns.txt #!/usr/bin/perl use strict; use warnings; my $index = shift; my $filename = shift; my $columns

我还在这里 我从一个非常专业的人那里得到了这段代码,我不敢问他这些基本问题……不管怎样,这是我现在的问题;这个Perl脚本打印由数字分隔的空格组成的列的中间值,我添加了一些东西来获得它的大小,现在我尝试获得同一列的总和。我做了,但没有得到结果,我没有选对专栏吗/stats.pl 1 columns.txt
#!/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,但既然这是作业,你应该自己做:)无论如何,谢谢,这不是全部作业,我把它分步骤分解,全部工作将由我自己完成。