in reply to expanding a PDL matrix
Anyway the following does all you ask for, and was inspired by your first response. I would point out that slurping data like this gives funny x,y coordinates when accessing elements from the array (but makes it easy to slurp and pring), eg...
here's the full code...$arr[y][x_from_top]
#!/usr/bin/perl -w my @matrix1; while (<DATA>) { push @matrix1, [ split(/\s+/) ]; } my @matrix2 = empty_matrix(35,35); overwrite_matrix(\@matrix2, \@matrix1, 0, 0); print get_matrix(\@matrix1); print "\n"; print get_matrix(\@matrix2); #============================================================== sub empty_matrix { map {[ map{0}(1..$_[1]) ]} (1..$_[0]) } #============================================================== sub get_matrix { join("\n", map { join(",", @$_) } @{$_[0]} ) } #============================================================== sub overwrite_matrix { my ($array_ref1, $array_ref2, $x_offset, $y_offset) = @_; my $y = 0; foreach my $row_ref (@$array_ref2) { my $x = 0; foreach my $value (@$row_ref) { $array_ref1->[$y + $y_offset][$x + $x_offset] = $value; $x++; } $y++; } } __DATA__ 2.8017 0 0 0 0 0 0 0 1.2969 0 0 0 0 0 0 0 0.5495 0 0 0 0 0 0 0 0.2329 0 0 0 0 0 0 0 0.1953 0 0 0 0 0 0 0 0.1723 0 0 0 0 0 0 0 0.0959
|
|---|