【发布时间】:2013-04-01 23:45:30
【问题描述】:
我正在尝试计算以下矩阵中的列差异:
A =
0 NaN NaN 0.3750 NaN
NaN 0.1250 0.2500 0.3750 NaN
我想获得:
0.3750 NaN NaN
0.1250 0.1250 0.1250
我实际上是在取列差异,跳过 NaN 值并将值向左移动。
一维情况是:
A = [0 NaN 0.250 0.375 NaN 0.625];
NaN_diff(A) = [0.250 0.125 0.250];
有什么方法可以在 MATLAB 中有效地做到这一点,而无需每行使用低效的 find() 查询?
【问题讨论】:
-
这不清楚,如果您“跳过 NaN”,那么为什么您的示例输出中仍然存在 NaN?
-
抱歉,我添加了这些 NaN 以确保矩阵是矩形的 - 具有更多数字的行将具有更长的差异。它们可以任意为零。
标签: matlab