I think you just need to set the bad flag, otherwise the bad value is just
another number. Here is an example from the perldl shell from the current cvs
PDL:
perldl:/cygdrive/c> $a = long(random(10,5)*10)
perldl:/cygdrive/c> p $a
[
[6 1 2 4 3 4 1 1 8 6]
[7 4 2 5 5 9 8 6 0 8]
[9 2 0 5 6 2 7 7 3 2]
[4 0 8 6 5 4 5 3 2 6]
[7 5 9 3 7 6 5 9 9 7]
]
perldl:/cygdrive/c> $s = $a(:,(0))
perldl:/cygdrive/c> p $s
[6 1 2 4 3 4 1 1 8 6]
perldl:/cygdrive/c> $s->setbadif($s>5)
perldl:/cygdrive/c> p $s
[6 1 2 4 3 4 1 1 8 6]
perldl:/cygdrive/c> $a(:,(0)) .= $s->setbadif($s>5)
perldl:/cygdrive/c> p $s
[-2147483648 1 2 4 3 4 1 1 -2147483648 -2147483648]
perldl:/cygdrive/c> p $a
[
[-2147483648 1 2 4 3 4
1 1 -2147483648 -2147483648]
[ 7 4 2 5 5 9
8 6 0 8]
[ 9 2 0 5 6 2
7 7 3 2]
[ 4 0 8 6 5 4
5 3 2 6]
[ 7 5 9 3 7 6
5 9 9 7]
]
perldl:/cygdrive/c> $a->badflag(1)
perldl:/cygdrive/c> p $s
[BAD 1 2 4 3 4 1 1 BAD BAD]
perldl:/cygdrive/c> p $a
[
[BAD 1 2 4 3 4 1 1 BAD BAD]
[ 7 4 2 5 5 9 8 6 0 8]
[ 9 2 0 5 6 2 7 7 3 2]
[ 4 0 8 6 5 4 5 3 2 6]
[ 7 5 9 3 7 6 5 9 9 7]
]
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl