Documente Academic
Documente Profesional
Documente Cultură
Anul I, AR+ITT
Verificai existena fiierului specificat, n directorul propriu (fereastra Current Directory). La nceput, acesta va
avea dimensiunea 0 octei.
3.2 Definirea unei matrice
O matrice mn reprezint un tablou dreptunghiular de elemente, avnd m linii i n coloane. La definirea unei
matrice n Matlab se folosesc parantezele ptrate, liniile se separ ntre ele prin (;) sau tasta <Enter>, iar
elementele n cadrul unei linii prin spaii sau virgul. Se pot folosi, de asemenea, expresii de tip interval, folosind
operatorul dou puncte (:).
>> A=[1 2.5 6;0 5 3.22]
A =
1.0000
2.5000
6.0000
0
5.0000
3.2200
>> B=[2 3
6,5
1,2]
B =
2
3
6
5
1
2
>> C=[0:4;5:9;10:2:18]
C =
0
1
2
3
4
5
6
7
8
9
10
12
14
16
18
Funcia returneaz numrul de linii i de coloane al unei matrice. Aceste numere pot fi memorate n variabile,
pentru o utilizare ulterioar (nr numrul de linii, nc numrul de coloane):
>> [nr nc]=size(C)
nr =
3
nc =
5
>> C'
ans =
0
1
2
3
4
>> C.'
ans =
0
1
2
3
4
5
6
7
8
9
10
12
14
16
18
5
6
7
8
9
10
12
14
16
18
n cazul n care matricea nu are n componen numere complexe, nu exist nici o diferen ntre rezultatele
furnizate de cei doi operatori (deoarece partea imaginar este zero).
3.5 Matrice speciale
3.5.1 Matricea zero
Matricea zero reprezint o matrice care are toate elementele nule. Pentru crearea acesteia se folosete funcia
zeros(). A se vedea documentaia:
>> doc zeros
Crearea unei matrice ptrate cu 3 linii i 3 coloane, avnd toate elementele zero:
>> Z3=zeros(3)
Z3 =
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
Crearea unei matrice ptrate cu 3 linii i 3 coloane, avnd toate elementele egale cu 1:
>> U3=ones(3)
U3 =
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1
>> I3=eye(3)
I3 =
1
0
0
1
0
0
0
0
1
n cazul n care numrul de linii este diferit de numrul de coloane, rndurile sau coloanele suplimentare se vor
completa cu zero. Crearea unei matrice identitate, cu 3 linii i 5 coloane:
>> I35=eye(3,5)
I35 =
1
0
0
1
0
0
0
0
1
0
0
0
0
0
0
0.8176
0.7948
0.6443
0.5211
0.2316
0.4889
0.6241
0.6791
0.3955
0.3674
0.9880
0.0377
0.2571
-0.9444
-1.3218
0.7477
-0.2730
1.5763
-0.4809
0.3275
0.6647
0.0852
0.8810
0.3232
=
=
=
=
diag(a,k)
diag(a)
diag(D,k)
diag(D)
3|Page
n prima form general, este construit o matrice ptrat de dimensiune n+abs(k), avnd elementele vectorului
a pe diagonala de ordin k. n cazul n care k=0, vectorul a va coincide cu diagonala principal. n cazul k>0,
elementele vectorului a vor fi aezate pe diagonala de ordin k situat deasupra diagonalei principale, iar n cazul
k<0, elementele vectorului a vor fi aezate pe diagonala de ordin k situat sub diagonala principal.
Exemplu:
>> D1=diag(a,2)
D1 =
0
0
0
0
0
0
0
0
0
0
0
0
>> D2=diag(a,-2)
D2 =
0
0
0
0
5.0000
0
0
-3.2500
0
0
0
0
5.0000
0
0
0
0
0
0
-3.2500
0
0
0
0
0
0
2.0000
0
0
0
0
0
0
101.0000
0
0
0
0
0
0
2.0000
0
0
0
0
0
0
101.0000
0
0
0
0
0
0
0
0
0
0
0
0
A doua form general este echivalent primei, cu k=0. Elementele vectorului a vor fi amplasate pe diagonala
principal:
>> D3=diag(a)
D3 =
5.0000
0
0
-3.2500
0
0
0
0
0
0
2.0000
0
0
0
0
101.0000
n cazul n care se d o matrice D i vrem s extragem ntr-un vector elementele de pe diagonala principal sau
diagonalele de ordin k, se folosesc ultimele dou forme generale.
Exemplu:
>> C
C =
>>
b1
>>
b2
>>
b3
0
1
2
5
6
7
10
12
14
b1=diag(C)
=
0
6
14
b2=diag(C,2)
=
2
8
18
b3=diag(C,-1)
=
5
12
Observaii:
diag(diag(D))
sum(diag(D))
Exemple:
3
8
16
4
9
18
>> D3
D3 =
5.0000
0
0
-3.2500
0
0
0
0
>> DD3=diag(diag(D3))
DD3 =
5.0000
0
0
0
2.0000
0
0
0
0
101.0000
4|Page
0
-3.2500
0
0
0
0
>> sdD3=sum(diag(D3))
sdD3 =
104.7500
0
2.0000
0
0
0
101.0000
0.1136
-0.9047
-0.4677
-1.0570
-0.2841
-0.0867
-0.2883
0.3501
-1.8359
6
7
2
3
10
6
15
13
8
12
1
5|Page
34
34
Suma elementelor de pe diagonala principal (urma matricei) are tot valoarea 34:
>> sum(diag(M4))
ans =
34
2
6
23 121]
-2.2550
23.0000
121.0000
Dac se apeleaz funcia sparse()avnd ca parametri doar cei trei vectori definii, va fi creat o matrice rar avnd
ca dimensiuni valoarea maxim din vectorii indicilor, i57 i j57.
>> S57=sparse(i57,j57,v57)
S57 =
(4,2)
23.0000
(1,3)
5.2200
(3,4)
-2.2550
(2,6)
10.0000
(3,6)
121.0000
>> size(S57)
ans =
4
6
Dac se dorete crearea unei matrice rare cu dimensiuni mai mari, se vor specifica aceste dimensiuni ca si
parametri. Se obine matricea rar de dimensiuni 5x7:
>> S57=sparse(i57,j57,v57,5,7)
S57 =
(4,2)
23.0000
(1,3)
5.2200
(3,4)
-2.2550
(2,6)
10.0000
(3,6)
121.0000
>> size(S57)
ans =
5
7
6|Page
ans =
0
0
0
0
0
0
0
0
23.0000
0
5.2200
0
0
0
0
0
0
-2.2550
0
0
0
0
0
0
0
0
10.0000
121.0000
0
0
0
0
0
0
0
Pentru vizualizarea modelului de raritate a matricei, se folosete funcia spy(). Aceasta ofer o reprezentare
grafic a poziiilor ocupate de elementele nenule din matrice.
>> spy(S57)
Vizualizai coninutul fiierului jurnal lab3.txt, n Windows Explorer sau alt program similar.
Verificai existena fiierului de date lab3.mat n directorul curent.
3.7 Exerciii individuale
1. S se studieze pe larg documentaia comenzilor i funciilor prezentate n lucrare: diary, size(), zeros(), ones(),
eye(), rand(), randn(), diag(), magic(), sparse(), full(), spy(), round(), save.
2. Interpretai rezultatele urmtoarelor comenzi:
>> diag(1:7)
>> diag(1:5,3)
>> diag(1:5,-3)
3. Folosind funcia rand() i funcia de rotunjire round(), s se simuleze aruncarea de trei ori a unei perechi de
zaruri.
7|Page