convert double NaN to string NaN

42 views (last 30 days)
Daneisha Blair
Daneisha Blair on 24 Aug 2021
Commented: Daneisha Blairon 24 Aug 2021
Hi
我有一个单元阵列与南如图片所示. How can I convert NaN to string NaN meaning instead of of seeing NaN in the array, I want to see "NaN".
I have tried this: TC(cellfun(@(x) any(isnan(x)),TC,'UniformOutput',false)) = {"NaN"}; but no success.
Any help is appreciated.

Accepted Answer

KSSV
KSSV on 24 Aug 2021
A = NaN(2,5) ;
C = arrayfun(@num2str,A,'UniformOutput',false)
C =2×5 cell array
{'NaN'} {'NaN'} {'NaN'} {'NaN'} {'NaN'} {'NaN'} {'NaN'} {'NaN'} {'NaN'} {'NaN'}
5 Comments
Daneisha Blair
Daneisha Blair on 24 Aug 2021
I got it :) . string( arrayfun(@num2str,A,'UniformOutput',false)).

Sign in to comment.

More Answers (1)

darova
darova on 24 Aug 2021
Try num2str
a = {nan 1 nan};
cellfun (@num2str,a,'UniformOutput',0)
ans =1×2 cell array
{'NaN'} {'NaN'}
1 Comment
Daneisha Blair
Daneisha Blair on 24 Aug 2021
This didn't give me quite what I was looking for.
For clarification, TC is in the structure of:
TC = {[ "Mercury" , "Gemini" , "Apollo" ; ...
"Skylab" , "Skylab B" , "ISS" ], ...
[ "Mercury" , "Gemini" ;
"Skylab" , "Skylab B" ]}
% Output array
TC = cellfun(@(x) nan(size(x,1),1) ,TC, 'UniformOutput' ,false)
which created double NaN
However, I want it in string NaN, like this {'NaN'}
Hope this help.

Sign in to comment.

Community Treasure Hunt

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

Start Hunting!