我在变量 raw_data
中有一个 50x25 元胞数组。每个单元格包含一个 200x150 矩阵。我有一些 NaN
值分散在所有这些值之间,我想将它们设置为 zeros
以确保它们不会在以后的阶段产生干扰。
我尝试了以下方法:
raw_data(cellfun(@(x) any(isnan(x), raw_data, 'UniformOutput', false)) = 0
运行脚本时,我得到“函数‘subindex’没有为类‘cell’的值定义”。有谁能帮帮我吗?
提前致谢!
最佳答案
这个怎么样:
cellfun(@(x) nansum(x,ndims(x)+1), raw_data, 'UniformOutput', false)
请注意,如果您确定 raw_data
中只有二维矩阵,您可以将 ndims(x)+1
替换为 3
>.
想法是使用 nansum
沿第 3 个维度求和,因为这将保留前 2 个维度的形状,幸运的是 nansum
似乎转换 NaN
到 0
当所有被求和的元素都是 NaN
关于matlab - 在 MATLAB 中用元胞数组中的零替换 NaN,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27960566/