Un ejemplo sencillo:
Introduzcamos una matriz 3x2; por ejemplo, > A <- matrix(c(1,2,3,4,5,6),nrow=3,ncol=2) > A [,1] [,2] [1,] 1 4 [2,] 2 5 [3,] 3 6 Sea (otra) matriz 2x3, que, por ejemplo, introducimos modificando A sumando 1 a cada componente escalar de la matriz > B=t(A+1) > B [,1] [,2] [,3] [1,] 2 3 4 [2,] 5 6 7 Calculamos el producto AB > A%*%B [,1] [,2] [,3] [1,] 22 27 32 [2,] 29 36 43 [3,] 36 45 54
Nota: No debe confundirse el producto de dos matrices $C$ por $D$, con $C$ de tamaño $m \times n$ y $D$ de tamaño $n\times p$, el cual da lugar a una matriz $CD$ de tamaño $m \times p$ —para realizar dicho producto en R se utiliza el operador C%*%D (tal como se ha hecho en el ejemplo anterior)—, con el producto componente a componente de sendas matrices (con el operador *), que da lugar a otra matriz del mismo tamaño/dimensión que éstas. Así, por ejemplo, con las siguientes matrices de la misma dimensión
> C <- matrix(c(1,2,3,4,5,6),nrow=2,ncol=3) > D <- matrix(c(2,3,4,5,6,7),nrow=2,ncol=3) > C [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 > D [,1] [,2] [,3] [1,] 2 4 6 [2,] 3 5 7 el producto componente a componente da lugar a otra matriz de las mismas dimensiones que C y D > C*D [,1] [,2] [,3] [1,] 2 12 30 [2,] 6 20 42 Démonos cuenta de que plantear el producto de matrices C%*%D no tiene sentido, pues $C$ es $2 \times 3$ (esto es, $m=2$ y $n=3), al igual que $D$, y por tanto, al no ser igual el número de columnas del primer factor (la matriz C tiene $3$ columnas) al número de filas del segundo factor (la matriz D tiene $2$ columnas), no está definido dicho producto matricial, por lo que el resultado de aplicar dicho comando daría lugar a un error del programa. En efecto, > C%*%D Error in C %*% D : argumentos no compatibles
Referencias
[1] The UIB-AprendeR team: https://aprender-uib.github.io/AprendeR1/[2] The UIB-AprendeR team: https://aprender-uib.github.io/AprendeR2/
[3] The R Development Core Team: https://cran.r-project.org/manuals.html
$\diamond$
No hay comentarios:
Publicar un comentario