mtimes, *
Multiplicación de matrices
Sintaxis
Descripción
es el producto matricial de C
= A
*B
A
y B
. Si A
es una matriz de m por p y B
es una matriz de p por n, C
es una matriz de m por n definida por
Esta definición indica que C(i,j)
es el producto interno de la i
-ésima fila de A
por la j
-ésima columna de B
. Puede escribir esta definición utilizando el operador de dos puntos de MATLAB® como
C(i,j) = A(i,:)*B(:,j)
A
y B
son no escalares, el número de columnas de A
debe ser igual al número de filas de B
. La multiplicación de matrices no es universalmente conmutativa para entradas no escalares. Es decir, normalmente A*B
no es igual a B*A
. Si al menos una entrada es escalar, A*B
es equivalente a A.*B
y es conmutativa.Ejemplos
Argumentos de entrada
Argumentos de salida
Sugerencias
Con multiplicaciones de matrices en cadena, como
A*B*C
, podría mejorar el tiempo de ejecución utilizando paréntesis para dictar el orden de las operaciones. Considere la multiplicación de tres matrices conA*B*C
, dondeA
es de 500 por 2,B
es de 2 por 500 yC
es de 500 por 2.Sin paréntesis, el orden de las operaciones es de izquierda a derecha por lo que
A*B
se calcula primero, lo que forma una matriz de 500 por 500. Después esta matriz se multiplica porC
para obtener el resultado de 500 por 2.Si, en su lugar, especifica
A*(B*C)
,B*C
se multiplica primero y produce una matriz de 2 por 2. Después, la matriz pequeña multiplicaA
para obtener el mismo resultado de 500 por 2, pero con menos operaciones y menos uso de memoria intermedia.
Referencias
[1] “BLAS (Basic Linear Algebra Subprograms).” Accessed July 18, 2022. https://netlib.org/blas/.
[2] Davis, Timothy A. “Algorithm 1000: SuiteSparse:GraphBLAS: Graph Algorithms in the Language of Sparse Linear Algebra.” ACM Transactions on Mathematical Software 45, no. 4 (December 31, 2019): 1–25. https://doi.org/10.1145/3322125.