How to eliminate Repeated NaNs in a array?

2 vues (au cours des 30 derniers jours)
Pappu Murthy
Pappu Murthy le 28 Oct 2019
Commenté : Adam Danz le 28 Oct 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?

Réponse acceptée

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

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Get Started with MATLAB dans Help Center et File Exchange

Produits

Community Treasure Hunt

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

Start Hunting!

Translated by