There's more than one way to do things PerlMonks

Re: Iterating over Blocks of 2-Dim Array

by kvale (Monsignor)
 on Apr 01, 2004 at 03:51 UTC ( #341500=note: print w/replies, xml ) Need Help??

in reply to Iterating over Blocks of 2-Dim Array

Algorithmically, you can think of this as a tensor product of 2 2x2 matrices. In code, you could represent this as
```for my \$a (0,1) {
for my \$b (0,1) {
print "Quadrant \$a,\$b:\n";
for my \$i (0,1) {
for my \$j (0,1) {
my \$row = 2*\$a + \$i;
my \$col = 2*\$b + \$j;
print "  element \$i,\$j => matrix coord \$row, \$col\n";
}
}
}
}
[download]```
If you wanted to convert in the opposite direction, just use the inverse equations:
```for my \$row (0..3) {
for my \$col (0..3) {
print "Quadrant ", int(\$row/2),',',int(\$col/2);
print "  Element ", \$row % 2,',', \$col % 2,"\n";
}
}
[download]```
Update: added inverse operation.

-Mark

Replies are listed 'Best First'.
Re: Re: Iterating over Blocks of 2-Dim Array
by Kozz (Friar) on Apr 01, 2004 at 04:11 UTC
Thank you -- brilliant! I'm also considering how to extend this concept in such a way that it subdivides beyond simple 4-quadrants. Thanks for the inspiration.

Log In?
 Username: Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://341500]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (5)
As of 2022-05-26 05:54 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Do you prefer to work remotely?

Results (93 votes). Check out past polls.

Notices?