How to find NaN values in a cell array.

This is my data:
a = {'raja' 'I' 76 56 NaN;'bala' 'R' 12 7 56;'kavi' NaN 56 5 12}
X = find(isnan(a));
I got
??? undefined function or method 'isnan'
for input arguments of type 'cell'.

 採用された回答

Image Analyst
Image Analyst 2016 年 12 月 30 日

2 投票

Try this to examine columns 2 onwards:
a = {'raja' 'I' 76 56 NaN;'bala' 'R' 12 7 56;'kavi' NaN 56 5 12}
b = cell2mat(cellfun(@isnan, a(:, 2:end), 'UniformOutput', false))
You'll see:
a =
3×5 cell array
'raja' 'I' [76] [56] [NaN]
'bala' 'R' [12] [ 7] [ 56]
'kavi' [NaN] [56] [ 5] [ 12]
b =
3×4 logical array
0 0 0 1
0 0 0 0
1 0 0 0

3 件のコメント

Thirunavukkarasu Yadav
Thirunavukkarasu Yadav 2016 年 12 月 30 日
thank you
G H
G H 2017 年 7 月 8 日
Why should we strart from the second line? "a(:, 2:end)"
Image Analyst
Image Analyst 2017 年 7 月 8 日
Well, you can start from the first column (not line as you said), if you want to check the names for nans.

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

その他の回答 (1 件)

the cyclist
the cyclist 2016 年 12 月 30 日
編集済み: the cyclist 2016 年 12 月 30 日

6 投票

Here is one way:
find(cell2mat(cellfun(@(x)any(isnan(x)),a,'UniformOutput',false)))
I had to stick the "any" command in there to deal with the strings, but I think this still does what you intend.

カテゴリ

ヘルプ センター および File ExchangeNumeric Types についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by