我在Perl中有一個2d數組。我將數組傳遞給子例程,並且我想修改2d數組的所有元素,然後返回並打印數組。我在下面附加了我的代碼。我遇到的問題實際上是更改每個單獨的元素並將該數組傳遞給子例程。二維數組:更改元素Perl
原始矩陣+代碼
x y z
CG -3.74900 -4.89100 -3.45400
OD1 -6.45900 -6.29100 -6.08000
OD2 -1.31600 -1.83300 -0.17600
sub translateMatrixOperation
{
my (@translatematrix, $x, $y, $z) = @_;
print "PRINTING FIRST\n";
my $arrsize = scalar @translatematrix;
for(my $i = 0; $i <= $arrsize; $i++)
{
for(my $j = 0; $j <= $arrsize; $j++)
{
if ($j == 0)
{
print "[$i][$j]:$translatematrix[$i][$j]\n";
$_ = $_ - $x;
}
elsif ($j == 1)
{
print "[$i][$j]:$translatematrix[$i][$j]\n";
$_ = $_ - $y;
}
elsif ($j == 2)
{
print "[$i][$j]:$translatematrix[$i][$j]\n";
$_ = $_ - $z;
}
}
}
print "PRINTING\n";
for(my $i = 0; $i <= $arrsize; $i++)
{
for(my $j = 0; $j <= $arrsize; $j++)
{
print "$translatematrix[$i][$j] ";
}
print "\n";
}
# return (\@translatematrix);
} 我想要通過添加恆定值的x值,一個恆定值的y值,和一個恆定於z編輯整個陣列。我哪裏做錯了?
關於風格,'爲(我的$ I = 0; $ I <= $ arrsize; $ I ++)'通常寫爲'我的$ I(0 .. $#ARR)''爲@ arr'陣列 –
您是否考慮過使用[PDL](http://pdl.perl.org/)?應該使矩陣操作非常簡單。 – memowe