MATLAB Answers

Rooy
0

Delete rows with NaN for a cell array

Asked by Rooy
on 26 Jun 2013
Accepted Answer by Tom

I want to remove the rows that have NaN and still keep the dimension of the array intact.

 [              NaN]    [        NaN]    [       NaN]    [           NaN]
    [              NaN]    [        NaN]    [       NaN]    [           NaN]
    'Total RADIO Drops'    'Total Drops'    'CC DCR (%)'    'RADIO  DCR (%)'

Above is just an example, I have over a thousand rows.

The only problem I have now is removing rows which have NaN and string together

Thank you

  1 Comment

Rooy
on 26 Jun 2013

Is there a way to delete the rows which have strings and Nan mixed together ?

    [              'A']    [        NaN]    [       NaN]    [           NaN]
    'Total RADIO Drops'    'Total Drops'    'CC DCR (%)'    'RADIO  DCR (%)'

Products

No products are associated with this question.

2 Answers

Answer by Tom
on 26 Jun 2013
 Accepted answer

A(any(cellfun(@(x) any(isnan(x)),A),2),:) = [];

  1 Comment

Rooy
on 26 Jun 2013

Thank you, it works


Answer by Andrei Bobrov
on 26 Jun 2013
Edited by Andrei Bobrov
on 26 Jun 2013

A - your cell array

out = A(any(cellfun(@(x)any(~isnan(x)),A),2),:);

ADD

out = A(all(cellfun(@(x)any(~isnan(x)),A),2),:);

  3 Comments

Rooy
on 26 Jun 2013

That works thank you, is there a way to delete the rows which have strings and Nan mixed together ?

see ADD part in my answer

Rooy
on 26 Jun 2013

Thank you for your great help


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

MATLAB Academy

New to MATLAB?

Learn MATLAB today!