web-dev-qa-db-fra.com

Que signifie l'opérateur "point" (.)?

Étant donné le code:

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

Le résultat :

B =

     1     4     9
     9     4     1

Mais si je fais ça: B = A^2

La sortie est:

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

Que fait l'opérateur . faire exactement?

31
JAN

Le point lui-même n'est pas un opérateur, .^ L'est.

Le .^ Est une puissance point par point¹ (c'est-à-dire par élément), comme .* Est le produit par point .

.^ Puissance du réseau. A.^B Est la matrice avec les éléments A(i,j) à la puissance de B(i,j). A et B doivent avoir la même taille, sauf si l'un d'eux est un scalaire.

C.f.

¹) D'où le point.

53
kay

Il y a une page entière dans la documentation MATLAB dédiée à ce sujet: Array vs. Matrix Operations . L'essentiel est ci-dessous:

MATLAB® a deux types différents d'opérations arithmétiques: opérations matricielles et opérations matricielles . Vous pouvez utiliser ces opérations arithmétiques pour effectuer des calculs numériques, par exemple, en ajoutant deux nombres, en élevant les éléments d'un tableau à une puissance donnée ou en multipliant deux matrices.

Les opérations matricielles suivent les règles de l'algèbre linéaire. En revanche, les opérations de tableau exécutent les opérations élément par élément et prennent en charge les tableaux multidimensionnels . Le caractère point (.) distingue les opérations de tableau des opérations de matrice. Cependant, comme les opérations de matrice et de tableau sont les mêmes pour l'addition et la soustraction, les paires de caractères .+ et .- ne sont pas nécessaires.

5
Dev-iL