2010-08-16 13 views
5

Dada una lista (longitud = n) de matrices 2x2, ¿cómo puedo calcular la suma de todas esas matrices (y obtener una matriz 2x2)?Calcula la suma de matrices en una lista o matriz 3D

¿Cómo puedo hacerlo, si en lugar de una lista tengo esas matrices en una matriz dimensional (2 x 2 x n)?

+0

http://en.wikipedia.org/wiki/Matrix_addition –

+0

@Xupypr MV Sería más que suficiente si no hubiera la etiqueta 'r'. – Brani

Respuesta

7

Suma de matrices en una lista:

Reduce("+", matrix_list) 
+0

Muy elegante. Intenté 'do.call' sin éxito. Creo que debo intentar comprender y usar la función 'Reducir'. – Brani

+0

¿Alguien sabe por qué todas las funciones de programación funcional como "Mapa" y "Reducir" están en mayúscula? – Vince

4

me ensuciaría con matrices así que si usted tiene un list por ejemplo:

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

transformarlo a 3d array

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

Ahora usted podría utilizar rowSums

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

Estaba cerca de encontrar esto. Es ese parámetro 'dims' que me faltaba. – Brani

Cuestiones relacionadas