How to eliminate Repeated NaNs in a array?

1 Ansicht (letzte 30 Tage)
Pappu Murthy
Pappu Murthy am 28 Okt. 2019
Kommentiert: Adam Danz am 28 Okt. 2019
I have two vectors X, and Y; both will have NaNs present in them.
If X has a NaN, Y will have a NaN as well at the same location.
I would like to squeeze repepated NaNs to just one NaN.
For e.g. if X = [1,2.3, NaN, NaN, NaN, 2, 1].. then
X should be replaced by X=[1,2,3,NaN,2,1] and
Y also should reflect the same.
How would I achieve it?

Akzeptierte Antwort

Adam Danz
Adam Danz am 28 Okt. 2019
% Demo data
x = [1:5 nan nan nan nan nan nan, 7:10, nan, 12, nan, 13:15, nan nan nan 19 ];
keepIdx = ~isnan(x); % keep all non-nans
keepIdx(logical([1,diff(~keepIdx)])) = true; % keep first of consecutive nans
x = x(keepIdx); % remove unwanted values from x
y = y(keepIdx); % remove unwanted values from y
  2 Kommentare
Pappu Murthy
Pappu Murthy am 28 Okt. 2019
Thanks for helping me out. It woked exactly the way i wanted.
Adam Danz
Adam Danz am 28 Okt. 2019
Glad I could help!

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Loops and Conditional Statements finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by