I have a 54x8 cell array that contains only strings. Most of these strings represent numbers and I would like to detect which cells are NaN.
One possibility would simply be to replace all NaN with ' ' or to check whether each d{i,j} == NaN.
Thanks

 채택된 답변

Walter Roberson
Walter Roberson 2015년 5월 26일

2 개 추천

cellfun(@(C) any(isnan(C(:)), YourCell)
However in your situation you could probably go with
cellfun(@isnumeric, C)
Oh wait, when you say NaN, do you mean the string 'NaN' ? If so then
cellfun(@(C) strcmp(C, 'NaN'), C)

댓글 수: 6

SG
SG 2015년 5월 26일
Yes, I meant the string 'NaN'. However, I am not sure what that statement is doing. Is it returning anything?
Walter Roberson
Walter Roberson 2015년 5월 26일
Ah right, should be cellfun(@(C) strcmp(C,'NaN'), d) for testing cell array d.
SG
SG 2015년 5월 26일
yes, but that gives a matrix with 0s and 1s at corresponding indexes. Is there a simpler way to check a given d{i,j}? E.g.
for i=1:54
for j=1:8
if (d{i,j} == 'NaN')
%statement
end
end
end
G H
G H 2017년 7월 8일
Not work for me. (2016b)
Answer: Matrix dimensions must agree.
Walter Roberson
Walter Roberson 2017년 7월 8일
G H are you comparing numeric nan or string 'NaN'
beginner94
beginner94 2018년 12월 18일
편집: beginner94 2018년 12월 18일
Hello,
@WalterRoberson:
Is there a way to use this
cellfun(@(ds) strcmp(ds, 'NaN'), ds))
when the cell elements are not aligned but below each other?
Thank you!

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Characters and Strings에 대해 자세히 알아보기

질문:

SG
2015년 5월 26일

편집:

2018년 12월 18일

Community Treasure Hunt

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

Start Hunting!

Translated by