MATLAB Answers

Rooy

Delete rows with strings for a cell array

Asked by Rooy
on 26 Jun 2013

I have a cell array that contains a few rows of strings and want to delete the whole row if they are all strings.

 'Cause'                  'CSSR (%)'    'MO Attempts'    'MT Attempts'
              [1x20 char]    [       1]    [          1]    [          0]

I only want to delete the first row and not the second.

Thank you

  0 Comments

Products

No products are associated with this question.

1 Answer

Answer by Andrei Bobrov
on 26 Jun 2013
Edited by Andrei Bobrov
on 26 Jun 2013
 Accepted answer
A = {'Cause'                  'CSSR (%)'    'MO Attempts'    'MT Attempts'
      'fghytresdfhjjiiuyt'    [       1]    [          1]    [          0]};
out = A(any(~cellfun(@ischar,A),2),:);

or

out = A;
A(all(cellfun(@ischar,A),2),:) = [];

  3 Comments

Rooy
on 27 Jun 2013

This takes out the rows that have some strings and numbers, I need to take out the rows that only have strings in it.

Thank you

Matt Eicholtz on 27 Jun 2013

When I run the code, it appears to do what you are asking. The all(...) part ensures that only rows in which every cell contains characters are deleted.

Rooy
on 27 Jun 2013

I must have changed the code, anyway it works.

Thank you


Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply today