矩阵中的列总和
问题描述:
我想添加矩阵的列1:i以获得每个矩阵的累积和。然后把结果在另一个矩阵矩阵中的列总和
所以就像有:
matrix
[,1] [,2] [,3] [,4] [,5]
[1,] A B C D E
[2,] F G H I J
[3,] K L M N O
[4,] P Q R S T
成为:
newmatrix
[,1] [,2] [,3] [,4] [,5]
[1,] A A+B A+B+C A+B+C+D A+B+C+D+E
[2,] F F+G F+G+H F+G+H+I F+G+H+I+J
[3,] K K+L K+L+M K+L+M+N K+L+M+N+O
[4,] P P+Q P+Q+R P+Q+R+S P+Q+R+S+T
答
> m<-matrix(rep(1:5,each=4),ncol=5)
> t(apply(m,1,cumsum))
答
理论上你可以通过右键乘法实现这一目标通过的上三角矩阵(大小为m×m,其中原始矩阵为n×m)
| A B C D | | 1 1 1 1 | | A A+B A+B+C A+B+C+D |
| E F G H | * | 0 1 1 1 | = | E E+F E+F+G E+F+G+H |
| I J K L | | 0 0 1 1 | | I I+J I+J+K I+J+K+L |
| 0 0 0 1 |
或
| A B C D E | | 1 1 1 1 1 | | A A+B A+B+C A+B+C+D A+B+C+D+E |
| F G H I J | | 0 1 1 1 1 | | F F+G F+G+H F+G+H+I F+G+H+I+J |
| K L M N O | * | 0 0 1 1 1 | = | K K+L K+L+M K+L+M+N K+L+M+N+O |
| P Q R S T | | 0 0 0 1 1 | | P P+Q P+Q+R P+Q+R+S P+Q+R+S+T |
| 0 0 0 0 1 |
感谢你非常:)我总是忘了这个功能! – 2014-10-07 12:48:56