¿Qué significa el operador “punto” (.)?

Dado el código:

A = [1 2 3; 3 2 1] B = A.^2 

La salida :

 B = 1 4 9 9 4 1 

Pero si hago esto: B = A^2

El resultado es:

 Error using ^ Inputs must be a scalar and a square matrix. To compute elementwise POWER, use POWER (.^) instead. 

Que hace el operador hacer exactamente?

El punto en sí no es un operador .^ Es.

El .^ es un poder pointwise¹ (es decir, elemento-sabio), ya que .* Es el producto puntual .

.^ Matriz de potencia. A.^B es la matriz con los elementos A(i,j) a la potencia B(i,j) . A y B deben tener el mismo tamaño, a menos que uno de ellos sea escalar.

Cf

¹) De ahí el punto.

Hay una página completa en la documentación de MATLAB dedicada a este tema: Array vs. Matrix Operations . La esencia de esto está abajo:

MATLAB® tiene dos tipos diferentes de operaciones aritméticas: operaciones de matriz y operaciones de matriz . Puede usar estas operaciones aritméticas para realizar cálculos numéricos, por ejemplo, sumr dos números, elevar los elementos de una matriz a una potencia determinada o multiplicar dos matrices.

Las operaciones de matriz siguen las reglas del álgebra lineal. Por el contrario, las operaciones de matriz ejecutan elemento por operaciones de elemento y admiten matrices multidimensionales . El carácter de período ( . ) Distingue las operaciones de matriz de las operaciones de matriz. Sin embargo, dado que las operaciones de matriz y matriz son las mismas para la sum y la resta, los pares de caracteres .+ Y .- son innecesarios.