Replacing NaN with some specific values in a mix data type of cell.

1 次查看(过去 30 天)
Hi there, I'm looking for functions that can replace Nan with some specific values in a mix data type of cell. Mix data type as in there's some cell containing strings, some are containing num.
I tried using
table(cellfun(@isnan,table))={'0'}
and I got this
Error using cellfun
Non-scalar in Uniform output, at index 1, output 1.
Set 'UniformOutput' to false.
Please help. Thanks!

采纳的回答

Jan
Jan 2017-10-18
编辑:Jan 2017-10-18
Start with a simple loop:
for iC = 1:numel(C)
aC = C{iC};
if isfloat(aC) && ~isempty(aC) % Only SINGLE and DOUBLE can be NaN
aC(isnan(aC)= 0;
C{iC} = aC;
end
end
  2 个评论
Pin-Hao Cheng
Pin-Hao Cheng 2017-10-18
Hi, thanks for your fast response! But somehow it doesn't work. I edited a little and it works now! Thanks for guiding!
for iC = 1:numel(C)
aC = C{iC};
if isfloat(aC) && isempty(aC) % Only SINGLE and DOUBLE can be NaN
aC = 0
C{iC} = aC;
end
end
Jan
Jan 2017-10-18
This replaces all empty cells by 0 and NaN does not appear at all. If you want this, use the simpler and faster:
C(cellfun('isempty', C)) = {0};
If your problem is not solved now, please post a small example of the input and output. My code converts:
C = {1, [2, NaN], 'hello', [], NaN}
to
C = {1, [2, 0], 'hello', [], 0}
And your code does:
C = {1, [2, NaN], 'hello', 0, NaN}

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 NaNs 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by