How to remove the pairing X value when Y is NaN?
3 views (last 30 days)
Show older comments
I have a series of XY pairing data where:
X [0 0.5 1 1.5 2 2.5]
Y [2 NaN 7 8 NaN NaN]
I have use this code Z=Y(isfinite(Y)) to remove the NaN in Y.
My question is how can I remove the data for X as well when the pairing Y data is NaN. It means I want to get the results in this way:
X [0 1 1.5]
Y [2 7 8]
Thanks so much~
0 Comments
Answers (3)
Friedrich
on 13 Mar 2013
Hi,
since X and Y have the same length do:
X = X(isfinite(Y))
Y = Y(isfinite(Y))
0 Comments
Vishal Rane
on 13 Mar 2013
The simplest way I can think of is :
NotNaN = ~isnan(Y); % gives 1 0 1 1 0 0
Y(NotNaN) % gives 2 7 8
X(NotNaN) % gives 0 1.0000 1.5000
0 Comments
Andrei Bobrov
on 13 Mar 2013
Edited: Andrei Bobrov
on 13 Mar 2013
X = [0 0.5 1 1.5 2 2.5];
Y = [2 NaN 7 8 NaN NaN];
XY = [X(:),Y(:)];
out = XY(~isnan(Y),:); % your case
% the general case
out = XY(all(~isnan(XY),2),:);
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!