# Replacing the last value after consecutive Nan

3 ビュー (過去 30 日間)
John Doe 2019 年 11 月 13 日
コメント済み: John Doe 2019 年 11 月 13 日
Hello everyone,
I would like to know how to replace a stand alone value that's greater than zero and follows a row of Nans. I would eventually replace that value with a 0.
For example, A = [ 0 0 0 Nan Nan Nan 1.2 0 0 Nan Nan 2.3 1 2 5], as you can see in A the value that I would want to replace by 0 is 1.2, I would like it to A = [ 0 0 0 Nan Nan Nan 0 0 0 Nan Nan 2.3 1 2 5]. I'm not sure how to approach this. Do I try to find the indices of the non nan values? and if I do that what would be next.
Help would be much appreciated.
##### 3 件のコメント1 件の古いコメントを表示1 件の古いコメントを非表示
M 2019 年 11 月 13 日
Do you want to replace the value after 3 consecutive NaN or after any NaN values ?
In any case, you can start by looking at the isnan function.
John Doe 2019 年 11 月 13 日
No, since it isn't a stand alone value, I want to keep it as it is along with the values that follow it. By stand alone I mean the only value that's greater than zero, following a Nan

サインインしてコメントする。

### 採用された回答

Stijn Haenen 2019 年 11 月 13 日
Try this:
for i=2:numel(A)
if isnan(A(i-1))&&A(i)>0
A(i)=0;
end
end
##### 1 件のコメント-1 件の古いコメントを表示-1 件の古いコメントを非表示
John Doe 2019 年 11 月 13 日
Thank you!
It works perfectly!

サインインしてコメントする。

### カテゴリ

Help Center および File ExchangeLogical についてさらに検索

### Community Treasure Hunt

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

Start Hunting!

Translated by