【发布时间】:2017-06-10 19:16:35
【问题描述】:
我有一个简单的示例矩阵,如下所示:(我正在处理的实际矩阵是 674x11,而不是简单的所有 '1' 元素)。
a =
1 1 1 NaN NaN
1 1 1 NaN NaN
1 1 1 1 NaN
1 1 1 1 1
1 1 1 1 1
我想创建一个累积矩阵,它说明数字元素从每列的不同行开始。我想通过用该行的平均值替换每列中第一个数字元素上方的 NaN 值来实现这一点。
所以而不是:
cumsum(a)=
1 1 1 NaN NaN
2 2 2 NaN NaN
3 3 3 1 NaN
4 4 4 2 1
5 5 5 3 2
我想要达到的是:
cumsum(a) =
1 1 1 NaN NaN
2 2 2 2 NaN
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
其中元素 (2,4) 是 a(2,1:3) 的平均值,元素 (3,5) 是 a(3,1:4) 的平均值。
【问题讨论】:
-
您要替换输出中的 all
NaN值吗? -
你的例子有问题。不应该是
element (2,4) is the mean of cumsum(a)(2,1:3)吗? -
其实,仔细想想,你是对的。元素 (2,4) 应该是 cumsum(a) (2,1:3) 的平均值。
标签: matlab sorting matrix cumsum