2010-08-16 55 views
5

給定一個2x2矩陣的列表(長度= n),我該如何計算所有這些矩陣的總和(並得到一個2x2矩陣)?計算列表或3D數組中的矩陣之和

我該怎麼做,如果不是列表而是列表中有這些矩陣在(2 x 2 x n)維數組中?

+0

http://en.wikipedia.org/wiki/Matrix_addition – 2010-08-16 11:45:40

+0

@Xupypr MV如果沒有'r'標籤就足夠了。 – Brani 2010-08-16 11:59:37

回答

7

的總和列表中的矩陣:

Reduce("+", matrix_list) 
+0

非常優雅。我嘗試了'do.call'沒有成功。我認爲我必須嘗試理解並使用'Reduce'功能。 – Brani 2010-08-16 12:34:03

+0

任何人都知道爲什麼像'Map'和'Reduce'這樣的函數式編程函數是大寫的? – Vince 2010-08-16 14:54:03

4

我會惹陣列,所以如果你有一個list例如:

n <- 5 
someList <- lapply(1:n, function(i) matrix(1:4+(i-1)*4,2,2)) 

改造它到3d array

someArray <- array(unlist(someList), c(2,2,n)) 

現在你可以使用rowSums

rowSums(someArray, dims=2) 
#  [,1] [,2] 
# [1,] 45 55 
# [2,] 50 60 
+0

我很接近找到這個。這就是我缺少的dims參數。 – Brani 2010-08-16 12:31:41