Azzera filtri
Azzera filtri

How to: Delete nums if before NaN

2 visualizzazioni (ultimi 30 giorni)
Hello kity
Hello kity il 30 Gen 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 Commento
Jan
Jan il 30 Gen 2013
Modificato: Jan il 30 Gen 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.

Accedi per commentare.

Risposta accettata

Jan
Jan il 30 Gen 2013
Modificato: Jan il 30 Gen 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 Commento
Hello kity
Hello kity il 30 Gen 2013
Modificato: Hello kity il 30 Gen 2013
thank you
strfind was the function i was looking for :)
really greateful
*edit, it is a column, i look if it is necessary

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Characters and Strings in Help Center e File Exchange

Tag

Community Treasure Hunt

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

Start Hunting!

Translated by