0

假设我有以下矩阵

一个=

76 南 122 南

78 南 123 南

84 南 124 54

77 南 126 58

82 45 129 62

90 50 135 45

76 63 133 66

79 52 122 49

88 56 140 24

有没有办法计算每列的指数移动平均值,而不考虑第一个 NaN 值?例如,如果我使用 3 天指数因子,我希望得到一个矩阵,第一列中的 2 个 NaN 值,第二列中的 6 个 NaN 值,第三列中的 2 个 NaN 值和 4 个 NaN 值第 4 列。有什么建议吗?先感谢您

4

1 回答 1

1

只需对整个矩阵使用过滤器,它将酌情通过 NaN。如果您还想用 NaN “感染”边缘值,请在顶部边缘添加一些额外内容,然后修剪结果:

kernel = [1 1 1].';   % Any 3-element kernel, as column vector
a2 = [repmat(NaN, 2, 4); a];  % Add extra NaN's at the start, to avoid partial answers
xtemp = filter(kernel, 1, a2);
x = xtemp(3:end, :);
于 2012-05-30T13:24:53.473 回答