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

Reply via email to