Cosa significa “punto” (.) Dell’operatore?

Dato il codice:

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

Il risultato :

 B = 1 4 9 9 4 1 

Ma se faccio questo: B = A^2

L’output è:

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

Cosa fa l’operatore . fare esattamente?

Il punto stesso non è un operatore .^ È.

Il .^ È un potere pointwise¹ (cioè element-wise), come .* È il prodotto pointwise .

.^ Potere della matrice. A.^B è la matrice con gli elementi A(i,j) alla potenza B(i,j) . A e B devono avere le stesse dimensioni, a meno che uno di essi sia uno scalare.

Cf

¹) Quindi il punto.

C’è un’intera pagina nella documentazione MATLAB dedicata a questo argomento: Array vs. Matrix Operations . L’essenza di questo è sotto:

MATLAB® ha due diversi tipi di operazioni aritmetiche: operazioni sugli array e operazioni con le matrici . È ansible utilizzare queste operazioni aritmetiche per eseguire calcoli numerici, ad esempio aggiungendo due numeri, elevando gli elementi di una matrice a una data potenza o moltiplicando due matrici.

Le operazioni con le matrici seguono le regole dell’algebra lineare. Al contrario, le operazioni dell’array eseguono operazioni elemento per elemento e supportano matrici multidimensionali . Il carattere punto ( . ) Distingue le operazioni dell’array dalle operazioni della matrice. Tuttavia, poiché le operazioni matrice e matrice sono le stesse per addizione e sottrazione, le coppie di caratteri .+ E .- non sono necessarie.