Matlab - Remarques à propos des scalaires, vecteurs, matrices et tableaux
Où l'on verra également la différence entre :
* |
.* |
/ |
./ |
^ |
.^ |
>> a = 6
a =
6
>> b = [ 1 3 8 ]
b =
1 3 8
>> c = [ 2 10 ; 3 8]
c =
2 10
3 8
>> d = [ 1 2 ; 3 4 ]
d =
1 2
3 4
>> e = [ -2 -8 –3 ]
e =
-2 -8 -3
>> f = [ 8 ; 5 ; 2 ]
f =
8
5
2
>> whos
Name Size
a 1 by 1
b 1 by 3
c 2 by 2
d 2 by 2
e 1 by 3
f 3 by 1
a est un scalaire (autrement dit une matrice 1x1)
b est un vecteur ligne (autrement dit une matrice 1x3)
c est une matrice (2x2)
d est une matrice (2x2)
e est un vecteur ligne (autrement dit une matrice 1x3)
f est un vecteur colonne (autrement dit une matrice 3x1)
Multiplication de matrice | * |
Multiplication de tableau (élément par élément) |
.* |
Puissance de matrice | ^ |
Puissance de tableau (élément par élément) |
.^ |
Division de matrice B / A est équivalent à B * inv(A) |
/ |
Division de tableau (élément par élément) |
. / |
* est le produit matriciel :
>> [ 2 10 ; 3 8] *[ 1 2 ; 3 4 ]
ans =
32 44
27 38
.* désigne la multiplication élément par élément, ce qui est complètement différent :
>> [ 2 10 ; 3 8] .* [ 1 2 ; 3 4 ]
ans =
2 20
9 32
>> [ 2 10 ; 3 8] / [ 1 2 ; 3 4 ]
ans =
11 -3
6 -1
>> [ 2 10 ; 3 8] ./ [ 1 2 ; 3 4 ]
ans =
2 5
1 2
>> [ 2 10 ; 3 8] ^2
ans =
34 100
30 94
>> [ 2 10 ; 3 8] .^2
ans =
4 100
9 64
>> 6*[ 1 3 8 ]
ans =
6 18 48
>> 6.*[ 1 3 8 ]
ans =
6 18 48
>> 6*[ 2 10 ; 3 8]
ans =
12 60
18 48
>> 6.*[ 2 10 ; 3 8]
ans =
12 60
18 48
>> [ 1 3 8 ].*[ -2 -8 –3 ]
ans =
-2 -24 -24
Le calcul suivant n'a pas de sens :
>> [ 1 3 8 ] *[ -2 -8 –3 ]
??? Error using ==> *
Inner matrix dimensions must agree.
>> [ 1 3 8 ] .^2
ans =
1 9 64
Le calcul suivant n'a pas de sens :
>> [ 1 3 8 ] ^2
??? Error using ==> ^
Matrix must be square.
Soit un vecteur ligne 1x7 :
>> x = 0 : 6
x =
0 1 2 3 4 5 6
>> y = (x+1).^2
y =
1 4 9 16 25 36 49
y est un vecteur ligne 1x7.
>> y = (x+1)^2
??? Error using ==> ^
Matrix must be square.
Testons avec une matrice carrée 2x2 :
>> x = [ 1 2 ; 3 4 ]
x =
1 2
3 4
>> y = (x+1).^2
y =
4 9
16 25
>> y = (x+1)^2
y =
16 21
28 37
>> t = 0 : 5
t =
0 1 2 3 4 5
>> u = t.^2 + 3.*t./ (5 + 2.*t)
u =
0 1.4286 4.6667 9.8182 16.9231 26.0000
>> u = t^2 + 3*t /(5 + 2*t)
??? Error using ==> ^
Matrix must be square.
>> z = 2 : 2 : 12
z =
2 4 6 8 10 12
>> t./z
ans =
0 0.2500 0.3333 0.3750 0.4000 0.4167
© Fabrice Sincère