Well I can't respond to everything on my phone, but int() is not a PDL method. You want floor() or ceil().
(Mobile) On Jun 23, 2010, at 6:43 PM, P Kishor <[email protected]> wrote: > Hello patient PDLers, > > Please bear with me and this long email (and, feel free to direct me > to a better venue, if there is one). > > perldl> $a = sequence 2,3 > perldl> p $a > [ > [0 1] > [2 3] > [4 5] > ] > > So, now I discover that $a really should have been (2,4), so > > perldl> $a->reshape(2,4) > perldl> p $a > [ > [0 1] > [2 3] > [4 5] > [0 0] > ] > > I am happy. But, my boss comes in and says, it really should be (3,4) > with a 0 in the third place in every element in the second dimension. > So > > perldl> $a->reshape(3,4) > perldl> p $a > [ > [0 1 2] > [3 4 5] > [0 0 0] > [0 0 0] > ] > > Oh no! I really wanted > > [ > [0 1 0] > [2 3 0] > [4 5 0] > [0 0 0] > ] > > Now what to do? So, I read up on dummy > > perldl> $b = sequence 3 > perldl> p $b > [0 1 2] > perldl> $b->dummy(0,3) > perldl> p $b > [0 1 2] > > Whaa! What happened there? I follow the docs > > perldl> p sequence(3)->dummy(0,3) > [ > [0 0 0] > [1 1 1] > [2 2 2] > ] > perldl> $c = $b->dummy(0,3) > perldl> p $c > [ > [0 0 0] > [1 1 1] > [2 2 2] > ] > > Yup, that works, but two things -- what the heck did dummy do? And, > why is $b not changed in place. > > perldl> p $b > [0 1 2] > > That seems the various methods don't seem to work analogously. For > example, $a->reshape() changes $a, but $b->dummy() doesn't change $b. > That is not very intuitive. Ok, so, I want to change > > [ > [0 1] > [2 3] > [4 5] > [0 0] > ] > > to > > [ > [0 1 x] > [2 3 x] > [4 5 x] > [0 0 x] > ] > > Where 'x' is a custom value. For example, I want a 0 for every 'x', or > I want a random number between 20 and 30 for every 'x'. How do I do > that? I know there is the 'random' method. But that creates a new > piddle with random values between 0 and 1. So, I tried a different > tactic > > perldl> $a = ones 2,3 > perldl> p $a > [ > [1 1] > [1 1] > [1 1] > ] > perldl> $a = $a * (int(rand(10)) + 20) > perldl> p $a > [ > [25 25] > [25 25] > [25 25] > ] > > No. I didn't want the random integer generated and then every value in > $a multiplied by it. I wanted every value to be multiplied by a > different random integer between 20 and 30. How do I do that? > > I fiddled a bit more with 'random' > > perldl> $a = random 2,3 > perldl> p $a > > [ > [ 0.22621636 0.72198009] > [ 0.63921956 0.41760895] > [0.0059526254 0.90491115] > ] > perldl> $a = $a * 100 > perldl> p $a > [ > [ 22.621636 72.198009] > [ 63.921956 41.760895] > [0.59526254 90.491115] > ] > perldl> $a = int($a) > perldl> p $a > 0 > > Wha!!! What happened there? Why does $a = $a * 100 multiply every > element in $a by 100, but int($a) converts $a to 0? > > -- > Puneet Kishor > > _______________________________________________ > 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
