我的代码的一部分计算了维度超过 300 X 300 的矩阵的逆矩阵(先前在代码中生成)。我想在代码中进一步使用逆矩阵的元素。为此使用了以下代码,尝试仅使用 5X5 矩阵进行测试:
use strict;
use warnings;
use Math::MatrixReal;
my @a=(); #a is the matrix obtained
$a[0][0]=0.18761134;
$a[0][1]=0.010779401; #Have hard-coded the values here till $a[4][4]
my $ref_a = \@a;
my $b = Math::MatrixReal->new_from_rows($ref_a);
my $b_inv = $b->inverse();
print "\n Inverse is\n",$b_inv; #prints correct inverse
print "\n\nTest printing elements\n";
print $$b_inv[0][1][1],"\n"; #prints the correct element
my $row_b=scalar(@{$b});
print "Number of rows in b: ",$row_b,"\n"; #prints 6
my $col_b=@{$$b[0]};
print "Columns in b: ",$col_b,"\n"; #prints 5
my $row_binv=scalar(@$b_inv);
print "Number of rows in b_inv: ",$row_binv,"\n"; #prints 3
my $col_binv=@{$$b_inv[0]};
print "Number of columns in b_inv ",$col_binv,"\n"; #prints 5
我无法理解
为什么 b 和 b_inv 的行数输出都是错误的?如何获得正确的行数值?
尽管打印引用数组的元素的语法是
$$b_inv[1][1]
,但我在使用时得到了正确的输出$$b_inv[0][1][1]