0

次の行列があるとします

a =

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 日間の指数係数を使用すると、1 列目に 2 つの NaN 値、2 列目に 6 つの NaN 値、3 列目に 2 つの 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 に答える