How to eliminate Repeated NaNs in a array?

1 visualización (últimos 30 días)
Pappu Murthy
Pappu Murthy el 28 de Oct. de 2019
Comentada: Adam Danz el 28 de Oct. de 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?

Respuesta aceptada

Adam Danz
Adam Danz el 28 de Oct. de 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 comentarios
Pappu Murthy
Pappu Murthy el 28 de Oct. de 2019
Thanks for helping me out. It woked exactly the way i wanted.
Adam Danz
Adam Danz el 28 de Oct. de 2019
Glad I could help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by