matlab - 在 MATLAB 中用元胞数组中的零替换 NaN

标签 matlab replace nan cell-array

我在变量 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/

相关文章:

matlab - MATLAB 中的轴刻度标记

python - 用于数据库目的的最合适的 .mat 文件转换

matlab - 4 种不同的 Matlab 函数来估计数据的 PDF 给出 4 种不同的结果

matlab - matlab 中具有对数刻度 x 轴和相同宽度的绘图条

mysql - MySQL可以替换多个字符吗?

python - Pandas groupby agg std NaN

Mysql replace() 函数,帮助查询(我要转义哪些字符?)

unix - 使用 unix magic 替换第 n 个字符

c++11 - std::numeric_limits::quiet_NaN() 与 std::nan() 与 NAN

JavaScript 数值自相等