How to remove NaNs from an array between points

1 vue (au cours des 30 derniers jours)
BuMatlab
BuMatlab le 9 Mar 2021
Commenté : KSSV le 9 Mar 2021
I have an array consisting of real numbers and NaNs. I'd like to identify the first row where there is a real number, then extract data from that point to when the next NaN occurs. If you see the attached example, I'd like the results to be example(17:43).
Thanks to the community for the help and let me know if I can cleary anything up!
  1 commentaire
BuMatlab
BuMatlab le 9 Mar 2021
Sorry - one more item: I'd like the Nans before the first real number row to remain intact - this would mean the results are example(1:43)

Connectez-vous pour commenter.

Réponse acceptée

KSSV
KSSV le 9 Mar 2021
Read about isnan.
idx = isnan(example);
idr = diff(find([1;diff(idx);1]));
D = mat2cell(example,idr(:),size(example,2));
celldisp(D)
  2 commentaires
BuMatlab
BuMatlab le 9 Mar 2021
Thanks, KSSV. It appears the length(D) ~= example(17:43) - any ideas?
KSSV
KSSV le 9 Mar 2021
See D{1}, D{2} etc..
celldisp(D)

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Resizing and Reshaping Matrices dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by