我在变量raw_data
中有一个50x25的单元格数组。每个单元包含200x150矩阵。我在所有这些值之间散布了一些NaN
值,我想将它们设置为zeros
,以确保它们不会在后期干扰。
我尝试了以下内容:
raw_data(cellfun(@(x) any(isnan(x), raw_data, 'UniformOutput', false)) = 0
运行脚本时,我没有为类'cell'的值定义“Function'ubindex'”。有人可以帮帮我吗?
提前致谢!
答案 0 :(得分:4)
这个怎么样:
cellfun(@(x) nansum(x,ndims(x)+1), raw_data, 'UniformOutput', false)
请注意,如果您确定raw_data
只有二维矩阵,则可以将ndims(x)+1
替换为3
。
我们的想法是使用nansum
对第3维求和,因为这将保留前2维的形状,幸运的是nansum
似乎将NaN
转换为0
当所有被求和的元素都是NaN