我想使用Perl脚本来获取特定数据列的中位数,我得到一个脚本,读取脚本中数组的值。我可以转换此Perl脚本以使其从文件中读取吗?
my (@vals, $med);
@vals =(12, 23, 34, 21, 66,66, 34, 87);
print "UNSORTED: @vals\n"; #sort data points
@vals = sort(@vals);
print "SORTED: @vals\n"; #test to see if there are an even number of data points
if(@vals % 2 == 0) { #if pair then:
$sum = $vals[(@vals/2)-1] + $vals[(@vals/2)];
$med = $sum/2;
print "The median value is $med\n";
}
else { #if odd then:
print "The median value is $vals[@vals/2]\n";
}
exit;
我可以改变这个不知何故,使其从几列的文件中读取数据,并计算平均为所选列?就像在shell命令中输入./median.pl 1 column_numbers.tbl一样。 这个我试过,但Data.txt文件只有一列
my (@vals, $med, $sum1, @numbers, @sorted);
open (COLUMN, "< data.txt") || die "Can not open file : $! ";
my @not_sorted = <COLUMN>;
close (COLUMN);
@sorted = sort { $a <=> $b } @not_sorted;
if (@vals % 2 == 0) {
$med = ($sorted[int($N/2)]);
print "MEDIAN = $med\n";
}
else {
$sum1 = $vals[(@vals/2)-1] + $vals[(@vals/2)];
$med = $sum1/2;
print "MEDIAN = $vals[@vals/2]\n";
};
感谢您的帮助。
是的,你可以!只是告诉我们你已经尝试了什么,所以我们可以帮助你。 – gangabass
在我看来,你已经问过这个问题了...... 4或5次左右。这不是一个为我写代码的网站,当你遇到麻烦时,你必须付出努力并提出具体问题。在[perldoc.perl.org](http://perldoc.perl.org)上有文档可以找到。 'perlopen'和它的关联文件可能是一个很好的开始。 – TLP
这是我之前询问的一部分,我尝试并修复了大部分问题。如果你不想回答我的问题,你是免费的,但不要责怪我不努力。谢谢 – Dav1