Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things

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"; } } } }
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"; } }
Update: added inverse operation.


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?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://341500]
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others chanting in the Monastery: (3)
As of 2017-06-25 01:08 GMT
Find Nodes?
    Voting Booth?
    How many monitors do you use while coding?

    Results (564 votes). Check out past polls.