I have a vector with some numbers. if any of the number comes NaN then all the number before NaN will be NaN.
ex. A=[1 2 3 4 NaN 5 6 8 6]
then I want to get, A=[NaN NaN NaN NaN NaN 5 6 8 6]

 채택된 답변

DGM
DGM 2021년 3월 21일

2 개 추천

This can be done using isnan() and find():
A=[1 2 3 4 NaN 5 6 8 6 1 2 3 4 NaN 5 6 8 6];
nanidx=find(isnan(A),1,'last');
A(1:nanidx)=NaN
The result will be NaN up to the last instance of NaN in the original array:
A =
NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN NaN 5 6 8 6
There might be some considerations to make if A ever becomes 2D, depending on how you want to handle things.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 NaNs에 대해 자세히 알아보기

질문:

2021년 3월 21일

답변:

DGM
2021년 3월 21일

Community Treasure Hunt

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

Start Hunting!

Translated by