how to remove NaN

12 ビュー (過去 30 日間)
andrew
andrew 2013 年 6 月 12 日
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 件のコメント
Kye Taylor
Kye Taylor 2013 年 6 月 12 日
編集済み: Kye Taylor 2013 年 6 月 12 日
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?

サインインしてコメントする。

回答 (2 件)

Kye Taylor
Kye Taylor 2013 年 6 月 12 日
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 2013 年 6 月 12 日
M = {3 [4 5] nan;[2 4] 'dfgh' [7 8 3]};
ii = ~cellfun(@(x)all(isnan(x(:))),z(:,3));
out = M(ii,:);

カテゴリ

Help Center および File ExchangeNaNs についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by