在Perl中合并二维数组

时间:2014-05-25 19:38:30

标签: arrays perl multidimensional-array merge

我想在perl中合并两个二维数组。

例如,@ array1和@ array2是二维数组。 @ array1有200行和300列。 @ array2有200行和100列。我的问题是如何合并或连接这两个数组,以便我可以获得一个包含200行和400列的新数组,我也想打印这个新数组的每个元素。在perl中有类似于R中命令“cbind”的方式。非常感谢你的帮助。

1 个答案:

答案 0 :(得分:2)

my @a1 = (
  # make one row with elements 1..300, and multiply/make 200 of these
  ([1..300]) x 200
);

my @a2 = (
  ([1..100]) x 200
);

my @r;
for my $i (0 .. $#a1) {
  # dereference $a1[$i] and $a2[$i] arrays,
  # merge them, and push into @r as new row
  push @r, [ @{ $a1[$i] }, @{ $a2[$i] } ];

  print "@{ $r[$i] }\n";
}

# use Data::Dumper; print Dumper \@r;