I'm not sure exactly what you're asking here.  

Dicing your 3D PDL will select a collection of planes out of the PDL and stack 
them along the same direction you're selecting in, extracting hyperplanes.  It 
looks like your $p1, $p2, and $p3 are, respectively, 5x2x1, 5x1x1, and 5x2x1.  
I think you're asking if you can get all those loci as a 5x5x1 PDL in one go.  

If that's the case, you're looking for range().  

Try this:

        $corners = pdl( [ 
                [0,2,0],  # $p1
                [0,3,0],  # $p1
                [0,4,1],  # $p2
                [0,1,2],  # $p3
                [0,5,2]   # $p3
                ]);
        $foo = $z->range($corners, [5,0,1])->mv(0,1);
The $corners gives coordinates of the corners of the planes you want to 
extract.  The second list ref (or PDL) in the range() call is the shape of each 
plane.  The middle size is set to 0 to drop that dim, so each range will be a 
5x1 plane.  You get five ranges, and the 0 dim runs across the ranges, so the 
output of range() will be a 5x5x1, running across (selected-region, 
source-dim-0, source-dim-2).  Since the selected regions take the place of the 
dicing in dim 1, I put a "mv(0,1)" there to make the final output run across 
(source-dim-0, selected-region, source-dim-2) like you probably wanted.



On Sep 18, 2013, at 10:20 PM, mraptor <[email protected]> wrote:

> hi,
> I have a nD pdl (in this case 3D), something like this :
> 
> $z = zeros(5,5,3)
> $z(,,0) .= ones(5,5)
> $z(,,1) .= ones(5,5)+1
> $z(,,2) .= ones(5,5)+2
> 
> $p1 = $z(,pdl(2,3),0)
> $p2 = $z(,pdl(4),1)
> $p3 = $z(,pdl(1,5),2)
> 
> I remember I read somewhere I can extract all those elements in one go, but 
> forgot what was it and how to use it... I want to do something along the 
> lines :
> 
> $sum = $z->dice( $p1,$p2,$p3)->transpose->sumover;
> my $idx = which($sum == 0);
> $sum->where($sum > 0) .= 1;
> .... etc...
> 
> any idea... thanks
> _______________________________________________
> Perldl mailing list
> [email protected]
> http://mailman.jach.hawaii.edu/mailman/listinfo/perldl


_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to