how to remove NaN

3 Ansichten (letzte 30 Tage)
andrew am 12 Jun. 2013
I have a m x n cell array. I want to search the 6th column for Nan cells and delete the entire row with the NaN cell.
tried: M( all( isnan( M ), 2 ), : ) = []; but get the following error: Undefined function 'isnan' for input arguments of type 'cell'.
  1 Kommentar
Kye Taylor
Kye Taylor am 12 Jun. 2013
Bearbeitet: Kye Taylor am 12 Jun. 2013
Although this command is causing the error
M( all( isnan( M ), 2 ), : ) = [];
it appears that you're trying to delete rows where all entries are NaNs. But you say you want to delete rows that contain a NaN in the sixth column. Which is it?

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Kye Taylor
Kye Taylor am 12 Jun. 2013
You're very close try
% idx(i) is true if contents in row i, column 6 of M equals NaN
idx = cellfun(@isnan,M(:,6))
% delete row with nan in it
M(idx,:) = [];

Andrei Bobrov
Andrei Bobrov am 12 Jun. 2013
M = {3 [4 5] nan;[2 4] 'dfgh' [7 8 3]};
ii = ~cellfun(@(x)all(isnan(x(:))),z(:,3));
out = M(ii,:);


Mehr zu Numeric Types finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by