Effacer les filtres
Effacer les filtres

How to: Delete nums if before NaN

2 vues (au cours des 30 derniers jours)
Hello kity
Hello kity le 30 Jan 2013
I have the following data (matrix).
I need to delete it if there is only 1 datapoint, 2 or more should stay. so in this example, -12.5 should be deleted.
Matrix=[NaN;NaN;-12.5000000000000;NaN;NaN;-8.90000000000000;-9.20000000000000;NaN;NaN;-9.60000000000000;-9.60000000000000;-9.60000000000000;NaN;]
Condition:
If num - 1 index = NaN and num + 1 = NaN
Delete that row
end
NaN
NaN
-12,5000000000000
NaN
NaN
-8,90000000000000
-9,20000000000000
NaN
NaN
-9,60000000000000
-9,60000000000000
-9,60000000000000
NaN
thank you
  1 commentaire
Jan
Jan le 30 Jan 2013
Modifié(e) : Jan le 30 Jan 2013
Please provide data such that we can use it by copy&paste for Matlab code. This means surrounding brackets, less trailing zeros and decimal points instead of commas. Thanks.

Connectez-vous pour commenter.

Réponse acceptée

Jan
Jan le 30 Jan 2013
Modifié(e) : Jan le 30 Jan 2013
value = [NaN, NaN, -12.5, NaN, NaN, -8.9, -9.2, NaN, ...
NaN, -9.6, -9.6, -9.6, NaN];
index = strfind(isnan(value), [true, false, true]);
value(index + 1) = [];
[EDITED] Perhaps you need a transpose(value), because strfind requires a row vector.
  1 commentaire
Hello kity
Hello kity le 30 Jan 2013
Modifié(e) : Hello kity le 30 Jan 2013
thank you
strfind was the function i was looking for :)
really greateful
*edit, it is a column, i look if it is necessary

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Characters and Strings dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by