How do I convert a cell array with string, double, and NaN values to a double array

I have a cell with these values = {1, 2, 'None', 1, 2, 3, 5, NaN, 'None'}
I want to convert this into a double with these values = {1, 2, NaN, 1, 2, 3, 5, NaN, NaN}
Is this possible?

 채택된 답변

jonas
jonas 2018년 9월 5일
편집: jonas 2018년 9월 5일
My original solution was obviously flawed, so credits to Guillaume for cleaning up redundant functions
A(strcmp(A, 'None')) = {NaN};
cell2mat(A)
... and credits to Stephen Cobeldick for providing the general solution (for any string):
A(~cellfun(@isnumeric,A)) = {NaN}

댓글 수: 3

Note that the find is completely redundant
A(strcmp(A, 'None')) = {NaN};
is simpler and faster.
No need to use find, logical indexing works perfectly.
An alternative that replaces all non-numeric values:
A(~cellfun(@isnumeric,A)) = {NaN}
Thanks guys! I put your solutions in the answer box for future reference, as the answer had already been accepted.

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

추가 답변 (0개)

카테고리

도움말 센터 및 File Exchange에서 Data Type Conversion에 대해 자세히 알아보기

제품

릴리스

R2018a

질문:

2018년 9월 5일

편집:

2018년 9월 5일

Community Treasure Hunt

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

Start Hunting!

Translated by