Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

New to MATLAB?

How to: Delete nums if before NaN

Asked by Hello kity

Hello kity (view profile)

on 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 Comment

Jan Simon

Jan Simon (view profile)

on 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.

Hello kity

Hello kity (view profile)

Tags

Products

No products are associated with this question.

1 Answer

Answer by Jan Simon

Jan Simon (view profile)

on 30 Jan 2013
Edited by Jan Simon

Jan Simon (view profile)

on 30 Jan 2013
Accepted answer
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 Comment

Hello kity

Hello kity (view profile)

on 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

Jan Simon

Jan Simon (view profile)

Contact us