Adding Vectors Containing NANs
QUESTION: I have two vectors (vec1 and vec2). Some of the values of vec1 are set as NaN (not-a-number). I want to sum each point of vec1 with its correspondent point in vec2, ignoring NaN. For example, I define my vectors like this.
vec1 = FltArr(5) + 1
vec1[2] = !Values.F_NAN
vec2 = FltArr(5) + 1
Print, vec1
1.00000 1.00000 NaN 1.00000 1.00000
Print, vec2
1.00000 1.00000 1.00000 1.00000 1.00000
If I try this:
new_vec=vec1+vec2
Print, new_vec
2.00000 2.00000 NaN 2.00000 2.00000
I have NaN's in new_vec which correspond to the NANs in vec1.
If I use Total, IDL tells me that vec2 should be a scalar in this context.
new_vec = Total(vec1, vec2, /NAN)
% TOTAL: Expression must be a scalar or 1 element array in this context: VEC2.
% Execution halted at: $MAIN$
Is there any other way to ignore the NaN's?
![]()
ANSWER: This answer is supplied by Klaus Scipal (kscipal@ipf.tuwien.ac.at).
You were right to think of Total, but you are using it incorrectly. The correct syntax is like this.
new_vec = [[vec1],[vec2]]
new_vec = Total(new_vec, 2, /NAN)
Print, new_vec
2.00000 2.00000 1.00000 2.00000 2.00000
![]()
Copyright © 1997-2003 David W. Fanning
Last Updated 3 January 2003
