Asked by Hello kity
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

*No products are associated with this question.*

Answer by Jan Simon
on 30 Jan 2013

Edited by Jan Simon
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.

Hello kity
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

Opportunities for recent engineering grads.

## 1 Comment

## Jan Simon (view profile)

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/60365#comment_126012

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.