arrays - 求多个数组的平均值

标签 arrays perl multidimensional-array

我有:

$array->[0]->[0..4] = (1,2,3,4,5)

$array->[1]->[0..6] = (12,13,14,15,16,17,18)

$array->[2]->[0..8] = (4,5,6,7,8,9,10,11,12)

我想找到每个数组的平均值,因此结果是:

$array->[0] = 3

$array->[1] = 15

$array->[2] = 8

这只是我的数据的一个示例,但我确实有数组 0 到 72-510,每个数组包含 0 到 1-40 个元素。我当前的脚本设置为让变量 $i 勾选数组总数,变量 $j 勾选数组中的元素数量。

下面是我的脚本的基本设置。

my $sum;
my $value;

foreach (my $i = 0; $i < "Number of Arrays"; ++$i) { 
 for (my $j = 0; $j < "Size of Array"; ++$j) { 
     $value = $array->[$i]->[$j];
 }
 $sum += $values;
 my $average = $sum / "Size of Array"; 
}

如果有人可以向我展示如何通过示例完成此操作,那将非常有帮助!如果我同时发现任何东西,我会更新我的问题。

最佳答案

使用List::Util并且不使用C风格的for循环:

use strict;
use warnings;
use List::Util qw(sum);
use feature 'say';

my $array = [
    [1, 2, 3, 4, 5],
    [12, 13, 14, 15, 16, 17, 18],
    [4, 5, 6, 7, 8, 9, 10, 11, 12],
    []
];

foreach my $sub_array (@$array) {
    @$sub_array or next;                       # Is the array empty?
    my $avg = sum(@$sub_array) / @$sub_array;
    say "[@$sub_array] has average $avg";
}

关于arrays - 求多个数组的平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31861880/

相关文章:

arrays - 从函数返回多维数组

c - 传递长度为 "constant"的二维数组

javascript - 使用 Javascript 连接多维数组中的字符串元素

php - 从大小可被四整除的平面数组中将 4 列行插入数据库表

java - Array.equals(...) 给出了不正确的结果

c++ - 使用 void 指针在 C++ 中打印数组

regex - 从Perl中的字符串中删除CRLF(0D 0A)

javascript - 如何在 JavaScript 中获取单词或索引后的子字符串?

perl - 如何从散列的散列中提取键名?

perl - 如何将 Perl 变量与内插字符串中的文本分开?