Evaluación de expresiones con matrices y vectores

Puede realizar operaciones matemáticas elemento por elemento (utilice operadores) sobre matrices y vectores, como sumas, restas, multiplicaciones y divisiones. Para estas operaciones, ambos objetos deben ser del mismo tipo y tener las mismas dimensiones. Cada miembro de la matriz/vector interactúa con el elemento correspondiente de la segunda matriz/vector.

Como segundo término (multiplicador, sustraendo o divisor), también se puede utilizar un escalar del tipo correspondiente (double, float o complex). En este caso, cada elemento de la matriz o vector se procesará teniendo en cuenta ese escalar.

matrix matrix_a = {{0.10.20.3}, {0.40.50.6}};
matrix matrix_b = {{123}, {456}};
matrix matrix_c1 = matrix_a + matrix_b;
matrix matrix_c2 = matrix_b - matrix_a;
matrix matrix_c3 = matrix_a * matrix_b;   // Hadamard product (element-by-element)
matrix matrix_c4 = matrix_b / matrix_a;
matrix_c1 = matrix_a + 1;
matrix_c2 = matrix_b - double_value;
matrix_c3 = matrix_a * M_PI;
matrix_c4 = matrix_b / 0.1;
matrix_a += matrix_b;                     // operations "in place" are possible 
matrix_a /= 2;

Las operaciones in situ modifican la matriz (o vector) original colocando en ella el resultado, a diferencia de las operaciones binarias normales en las que los operandos no se modifican y se crea un nuevo objeto para el resultado.

Además, las matrices y los vectores pueden pasarse como parámetros a la mayoría de las funciones matemáticas. En este caso, la matriz o el vector se procesan elemento a elemento. Por ejemplo:

matrix a = {{14}, {916}};
Print("matrix a=\n"a);
a = MathSqrt(a);
Print("MatrSqrt(a)=\n"a);
/*
   matrix a=
   [[1,4]
    [9,16]]
   MatrSqrt(a)=
   [[1,2]
    [3,4]]
*/

En el caso de MathMod y MathPow, el segundo parámetro puede ser un escalar, una matriz o un vector del tamaño adecuado.