1 つ以上の配列の平均値を取得したいと考えています。
my @w = (0,2);
my @x = (1,3);
my @y = (2,2);
my @z = (1,1);
上記の 4 つの配列の平均は(1,2)
、(0+1+2+1)/4 = 1 および (2+3+2+1)/4 = 2 であるためです。
の平均はmy @r = (3,4,1,4,5)
です(3/5, 4/5, 1/5, 4/5/, 1)
。
これが最初のものに対する私の解決策です。
my @AoA = (\@w, \@x, \@y, \@z);
my @sums;
foreach my $column(0..$#@w){
my $average;
my $size = @w;
foreach my $aref (@AoA){
$average += ($aref -> [$column]) / $size ;
}
push(@sums, $average);
}
これは機能する場合と機能しない場合があります。これを行う簡単な方法はありますか?おそらくモジュール内の関数ですか?
2番目のものに対する私の解決策。考えてみると、これは実際には簡単だと思います:
my $scalar = @r;
my @new_r;
foreach my $x (@r) {
$x = $x / $scalar;
push(@new_r, $x);
}
再び動作する場合と動作しない場合があります。おそらくこれを行う簡単な方法があります。