in reply to for loop
Hi, My understanding is of the above problem is to split the matrix to an expected order. And my code is:
sub splitMatrix {
my $val = shift;
my $order = shift;
my ($i, $i1, $j, $j1, $k, $k1, $orgRowOrder, $orgColOrder, @retval);
$orgRowOrder = scalar(@{$val});
$orgColOrder = scalar(@{$$val[0] });
for ( $i = 0, $j = 0; $j < $orgRowOrder; $j++ ) {
$i1 = $i;
for ($k = 0 ; $k < $orgColOrder; $k++) {
$j1 = $j % $order;
$k1 = $k% $order;
$retval[$i1] [$j1] [$k1] = $$val[$j] [$k] ;
$i1++ if ( $k % $order == $order-1 );
$j1++ if ( $i1 % $order == $order-1 );
$k1++;
}
$i += $order+1 if ( $j % $order == $order-1);
}
return @retval;
}
my @matrix = ([3, 4, 10, 2,2,2] ,
[2, 7, 12, 3,2,2] ,
[0, 3, 4, 5,2,2] ,
[6, 5, 9, 11,2,2] );
my ($a,$b,$c,$d,$e,$f);
($a,$b,$c,$d, $e, $f) = &splitMatrix(\@matrix,2);
print "\n1: ";
foreach my $temp ( @$a ) {
foreach my $temp2 ( @$temp ) {
print $temp2 ,"|\t";
}
print "\n ";
}
print "\n2: ";
foreach my $temp ( @$b ) {
foreach my $temp2 ( @$temp ) {
print $temp2 ,"|\t";
}
print "\n ";
}
email: indragoby@yahoo.com