Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有两个50 x 6矩阵,比如说A和B。我想为矩阵中列的每个元素分配权重 - 对列中较早出现的元素的权重更大,对同一列中稍后出现的元素的权重更小......同样适用于所有 6 列。像这样的东西:
50 x 6
A
B
cumsum(weight(row)*(A(row,col)-B(row,col)); % cumsum is for cumulative sum of matrix
我们如何在不使用循环的情况下有效地做到这一点?
如果您将权重向量w作为50x1向量,则可以将代码重写为
w
50x1
cumsum(repmat(w,1,6).*(A-B))
顺便说一句,我不知道你为什么要cumsum在循环中对标量进行操作......它没有效果。我假设您的意思是这就是您想要对整个矩阵执行的操作。默认情况下,调用cumsum矩阵将沿每一列进行操作。如果您需要沿行操作,则应使用可选的维度参数 as 调用它,您拥有的矩阵cumsum(x,2)在哪里。x
cumsum
cumsum(x,2)
x