我想使用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