Replacing the last value after consecutive Nan

2 vues (au cours des 30 derniers jours)
John Doe
John Doe le 13 Nov 2019
Commenté : John Doe le 13 Nov 2019
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.
Thank you in advance!
  3 commentaires
M
M le 13 Nov 2019
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
John Doe le 13 Nov 2019
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

Connectez-vous pour commenter.

Réponse acceptée

Stijn Haenen
Stijn Haenen le 13 Nov 2019
Try this:
for i=2:numel(A)
if isnan(A(i-1))&&A(i)>0
A(i)=0;
end
end
  1 commentaire
John Doe
John Doe le 13 Nov 2019
Thank you!
It works perfectly!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by