Replace previous values with NaN

5 Ansichten (letzte 30 Tage)
MRINAL BHAUMIK
MRINAL BHAUMIK am 21 Mär. 2021
Beantwortet: DGM am 21 Mär. 2021
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]

Akzeptierte Antwort

DGM
DGM am 21 Mär. 2021
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.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by