2014-10-07 255 views
3

我想添加矩陣的列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 

回答

5
> m<-matrix(rep(1:5,each=4),ncol=5) 
> t(apply(m,1,cumsum)) 
+1

感謝你非常:)我總是忘了這個功能! – 2014-10-07 12:48:56

0

理論上你可以通過右鍵乘法實現這一目標通過的上三角矩陣(大小爲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 | 
+0

請格式化您的代碼。 – Jan 2015-09-22 12:26:41

+0

這適用於對稱矩陣,而問題使用非對稱矩陣的例子 - 你能適應你的問題來引用這種情況嗎? – Tim 2015-09-22 12:38:02

+0

我已將其更改爲非方形矩陣 – Steve 2015-09-22 12:48:56