我想获得 1 个或多个数组的平均值。
my @w = (0,2);
my @x = (1,3);
my @y = (2,2);
my @z = (1,1);
这样上面四个数组的平均值是(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);
}
这可能会也可能不会。有没有更简单的方法来做到这一点?也许是模块中的一个函数?
我的第二个解决方案。我认为现在我想这个实际上更容易:
my $scalar = @r;
my @new_r;
foreach my $x (@r) {
$x = $x / $scalar;
push(@new_r, $x);
}
再次可能会或可能不会工作。可能有一种更简单的方法可以做到这一点。