How to remove NaNs from an array between points

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

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)

댓글을 달려면 로그인하십시오.

 채택된 답변

KSSV
KSSV 2021년 3월 9일
Read about isnan.
idx = isnan(example);
idr = diff(find([1;diff(idx);1]));
D = mat2cell(example,idr(:),size(example,2));
celldisp(D)

댓글 수: 2

Thanks, KSSV. It appears the length(D) ~= example(17:43) - any ideas?
See D{1}, D{2} etc..
celldisp(D)

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Resizing and Reshaping Matrices에 대해 자세히 알아보기

태그

질문:

2021년 3월 9일

댓글:

2021년 3월 9일

Community Treasure Hunt

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

Start Hunting!

Translated by