Paste
#78998: Untitled Perl paste by 61.164.42.188
#!/usr/bin/perl -w
use strict;
my @matrix_A = (
[ 10 , 1 , 0 ],
[ -1 , 10 ,-2 ],
[ 0 , -2 , 5 ],
);
my $ref_a = \@matrix_A;
my @matrix_D = @$ref_a;
my @matrix_L = @$ref_a;
my @matrix_U = @$ref_a;
for (my $i = 0; $i < 3; $i++) {
for (my $j = 0; $j < 3; $j++) {
if ( $i = $j ) {
$matrix_D[$i][$j] = $$ref_a[$i][$j];
$matrix_L[$i][$j] = 0;
$matrix_U[$i][$j] = 0;
}
if ( $i > $j ) {
$matrix_D[$i][$j] = 0;
$matrix_L[$i][$j] = $$ref_a[$i][$j];
$matrix_U[$i][$j] = 0;
}
if ( $i < $j ) {
$matrix_D[$i][$j] = 0;
$matrix_L[$i][$j] = 0;
$matrix_U[$i][$j] = $$ref_a[$i][$j];
}
}
}
想得到的结果是:
@matrix_D,主对角线与@matrix_A相同,其余为零
@matrix_L,主对角线以下与@matrix_A相同,其余为零
@matrix_U,主对角线以上与@matrix_A相同,其余为零
程序段得到的结果完全不对,哪里出了问题?