mihaispr
Administrator
Inregistrat: acum 17 ani
Postari: 2142
|
|
In continuare veti invata cum sa operati cu vectori(definirea lor) si comenzi de baza in consola:
1) Pentru a introduce un vector si a-l stoca intr-o variabila a scrieti in consola:
>> a = [ 1 2 3 4 8 ] %elementele vectorului sunt cuprinse intre paranteze patrate
Se va afisa: a= 1 2 3 4 8
Acelasi efect daca scriem elementele vectorului separate prin ,:
>> a= [1,2,3,4,8]
2) Daca vreti sa vedeti vectorul cu elemente tastati >>a(se va afisa: 1 2 3 4 8 doar elementele insiruite)
3) Scrierea unui vector sub forma de vector coloana este realizata astfel:
Metoda1:
>> a = [ 1 2 3 4 8]'
Se va afisa: a= 1 2 3 4 8
Metoda2:
>> a= [1;2;3;4;8] %elemente separate prin ;
4) Scrierea unui vector avand primele 8 elemente este realizata astfel:
>> a = [1:8]
Se va afisa: a= 1 2 3 4 5 6 7 8
5) Scrierea unui vector folosind un anumit pas:
Forma generala: val.initiala:pas utilizat:valoare finala
Exemplu: >>a=[1:.25:4] %am definit un vector care incepe cu 1, are pasul 0.25 si se termina cu 4 Se va afisa:
a =
Columns 1 through 7
1.0000 1.2500 1.5000 1.7500 2.0000 2.2500 2.5000
Columns 8 through 13
2.7500 3.0000 3.2500 3.5000 3.7500 4.0000
Obs1: Pt.lucrul cu vectori mai mari avem:
>>0:3:12
Se va afisa: ans= 0 3 6 9 12
>>ans' % va transforma vectorul intr-un vector coloana
0 3 6 9 12
Obs2: Daca vreau sa vad doar primele 3 elemente din vectorul de mai sus avem:
>>a(1:3) % imi va afisa primele 3 elemente adica 0,3 si 6
Obs3: De aici puteti extinde si alte operatii:
Sa zicem ca avem vectorul: >>a= (1:1:8)
Adica:
a =1 2 3 4 5 6 7 8
>>a(1:3)+a(2:4)
Se va afisa: ans = 3 5 7
>>a(1:3)-a(2:4)
Se va afisa: ans = -1 -1 -1
6)Referirea la un element al unui vector se face astfel:
>>b=a(5) % se face referire la al cincilea element din vector
Se va afisa: b=8
Un exemplu de referire a unui element din vector:
>>a=[-1.3 sqrt(3) 24/5] % astfel el va afisa -1.3 valoarea lui radical din 3 si rezultatul impartirii lui 24 la 5
Se va afisa: -1.3000 1.7321 4.8000
>>b=a(2) % face referire la al doilea element al vectorului si se va afisa 1.7321
>>abs(a(1)) % calculeaza modulul lui -1.3
Se va afisa: ans=1.3
>> a(5)=abs(a(1)) %inlocuieste cu valoarea absoluta a primului element, elementul specificat in cazul nostru al cincilea element, iar al patrulea element va avea 0
Are ca efect afisarea urmatorului rezultat a =-1.3000 1.7321 4.8000 0 1.3000
Daca in schimb aveam a(4)=abs(a(1))
S-ar fi afisat:
a =-1.3000 1.7321 4.8000 1.3000 1.3000
a=1:7 defineste un vector: a=1 2 3 4 5 6 7
a=1:2:9 defineste un vector cuprins intre 1 si 9 cu pasul 2 adica: 1 3 5 7 9
7) Calculul lungimii unui vector(numarul de elemente ale unui vector)
>>a=[1 2 3 4 8] %definirea vectorului cu elementele dorite de voi >>b=length(a) %afisarea numarului de elemente ale vectorului
8) Produsul scalar a 2 vectori
Fie 2 vectori definiti in consola:
>>a=[1;0;2] >>b=[-1;1;2]
Metoda 1: >>a'*b %afiseaza produsul scalar al celor 2 vectori
Metoda 2: >>c=sum(a.*b) %produsul scalar a vectorilor a si b folosind semnul .*
Produsul scalar este: a1*b1+a2*b2+a3*b3=1*-1+0*1+2*2=3
Deci produsul scalar este=3
9) Produsul vectorial a 2 vectori
>>a=[1;0;2] >>b=[-1;1;2] >>x*y' %afiseaza produsul vectorial al celor 2 vectori
Vom inmulti a1 cu toate comp lui b si ne da prima linie,apoi a2 cu toate comp lui b si avem a doua linie s.a.m.d
Se va afisa deci: -1 1 2 0 0 0 -2 2 4
Se va afisa: ans=5
10) Functia isnan- returneaza un vector care contine 1 daca avem NaN(Not a Number) si 0 daca sunt numere
Exemplu: >>isnan([pi NaN Inf -Inf])
Se va afisa un vector: [0 1 0 0]
11) Functia isinf- returneaza un vector care contine 1 daca avem +/-infinit si 0 in cazul unor numere finite sau NaN(Not a Number)
Exemplu: >>isinf([pi NaN Inf -Inf])
Se va afisa un vector: [0 0 1 1]
12) Functia finite- returneaza un vector care contine 1 daca avem numar finit si 0 daca avem +/- infinit sau NaN(Not a Number)
Exemplu: >>finite([pi NaN Inf -Inf])
Se va afisa un vector: [1 0 0 0]
13) Functia size- afiseaza prima si ultima valoare a vectorului
>>a= (1:5) sau >>a=[1 2 3 4 5] >>size(a) % se vor afisa prima si ultima valoare din vector adica 1 respectiv 5
14) Functia ones- inlocuieste fiecare element al vectorului cu 1
>>a= (1:5) >>ones(1,5)
Se va afisa: ans= 1 1 1 1 1
Daca in schimb avem >>ones(1,4) se va afisa: ans= 1 1 1 1
15) Functia zeros- inlocuieste fiecare element al vectorului cu 0
>>a= (1:5) >>zeros(1,5)
Se va afisa: ans= 0 0 0 0 0
Daca in schimb avem >>zeros(1,4) se va afisa: ans= 0 0 0 0 16) Operatii aritmetice cu vectori
a) Adunarea a 2 vectori(practic scad element cu element)
Fie 2 vectori dati:
>>a=[1 2 3 4] >>b=[-2 3 4 1] >>c=a+b
Efect: se va afisa c = -1 5 7 5
b) Scaderea a 2 vectori
>>a=[1 2 3 4] >>b=[-2 3 4 1] >>c=a-b
Efect: se va afisa c = 3 -1 -1 3
c) Ridicarea la putere(aceasta operatie se realizeaza cu ajutorul simbolurilor .^)
>>a=[1 2 3 4] >>b=[1 4 4 3] >>c=a.^b %practic ridicam primul el al vec a la puterea primului el al vec B samd
Efect: se va afisa c = 1 16 81 64
17) Generarea elementelor unui vector folosind distributii
a) >>rand(1,2,3) %genereaza aceste numere folosind distributia uniforma
b) >>randn(1,2,3) %genereaza aceaste numere folosind distributia normala
18) Cautarea unui element dintr-un vector
Fie vectorul dat a=1 2 3 4
>>a= (1:4) sau a=[1 2 3 4] >>a(find(x==2)) % cauta elementul 2 in vector daca il gaseste il afiseaza daca nu afiseaza simbolul vid adica []
19) Concatenarea a 2 vectori
>> a=1:3 %vectorul a
a =
1 2 3
>> b=4:6 %vectorul b
b =
4 5 6
>>c=[1:3,4:6] %c reprezinta vectorul concatenat din a si b
c =
1 2 3 4 5 6
20) Definire vector si stocare in variabila intreaga doar a anumitor valori din vector:
>> a=[1 2 3 4]
a =
1 2 3 4
b=a(a>=4 & a<=9)
b =
4
21) Definirea a doi vectori si trunchierea vectorului mai mare(trunchiere =mai putine valori)
>>v1 = 1:10; %definirea primului vector in variabila v1 => valoare initiala =1 ; valoare finala=10 v2 = 2:3:50; %definirea celui de-al doilea vector in variabila v2
veclim = @(v1,v2) deal(v1(1:min(length(v1),length(v2))), ... v2(1:min(length(v1),length(v2))));
[u1,u2] = veclim(v1,v2) %folosirea functiei veclim pt.trunchierea vectorului cu mai multe elemente
u1 = 1 2 3 4 5 6 7 8 9 10 u2 = 2 5 8 11 14 17 20 23 26 29
22) Definire vector,generarea a doi vectori a si b din primul vector definit x precum si calcul medie aritmetica a el.vec x si verificarea daca exista numere prime in vectorul x (intoarce 1 dk existe elemente prime si 0 in caz contrar):
>> x=[4 5 1 3 2 6 8]
x =
4 5 1 3 2 6 8
>> [a,b]=sort(x)
a =
1 2 3 4 5 6 8
b =
3 5 4 1 2 6 7
>> mean(x)
ans =
4.1429
>> isprime(x)
ans =
0 1 0 1 1 0 0
23) Copierea dintr-un vector mare a doar a anumitor elemente intr-un alt vector b
>>a=1:4000 %primul vector contine elemente de la 1 la 4000 >>b = x(1:1000) %copiem in al doilea vector b elemente doar de la 1 la 1000
24) Modificarea unui anumit element dintr-un vector cu un alt element precizat folosind comanda simset
Sa luam urmatorul exemplu:
>>a=[1 2 3]
Sa spunem ca vrem sa modificam valoarea 2 din vector(al doilea element al vectorului) cu valoarea 5.
Pentru aceasta vom folosi comanda simset care este utilizata impreuna cu comanda sim.
>>[t,x,y]=sim('modelName',[0 2],simset('InitialState', a));
sau
>>[t,x,y]=sim('modelName',[0 2],simset('InitialState', [1 2 5]));
Sunt comenzi ce simuleaza modelul cu numele 'modelName' cu valori de pas intre 0 si 2 cu vectorul initial a , sau concret [1 2 5] in al doilea exemplu.
,commands which simulates model 'modelName' between stepTime 0 and stepTime 2, with the initial state vector 'a' or '[1 2 5]'.
Pentru a modifica al doilea element al vectorului la valoarea 5 in loc de 2 vom scrie:
>>a(2)=5;
25) Obtinerea valorilor prin impartire la 2 intre fiecare element al unui vector definit in consola
Exemplu:
Fie definit vectorul a in consola:
>>a=[-6 -3 0 3 6]
>> (a(1:end-1) + a(2:end))/2 %varianta 1
>> diff(a)/2 + a(1:end-1) %varianta 2
26) Calculul normei unui vector
>> a=[1 2 3 0]
a =
1 2 3 0
>> norm(a)
ans =
3.7417
>>
27) Functia unique
Exemplu:
>> a=[1 1 2 3 1 2 1]
a =
1 1 2 3 1 2 1
>> b=unique(a)
b =
1 2 3
>> mat=[1 2 3 4 5; 1 5 3 2 1; 2 2 2 1 1; 2 2 1 2 0; 2 1 0 8 9]
mat =
1 2 3 4 5 1 5 3 2 1 2 2 2 1 1 2 2 1 2 0 2 1 0 8 9
>> b=unique(mat,'rows')
b =
1 2 3 4 5 1 5 3 2 1 2 1 0 8 9 2 2 1 2 0 2 2 2 1 1
>>
28) Toate permutarile si combinarile posibile intre elementele a 3 vectori definiti in consola:
>>A=[1 2 3] >>B=[1 1 2] >>C=[2 1 3] >>[AA BB CC]=ndgrid(A,B,C) COMB= [AA(: ) BB(: ) CC(: )]
29) Calculul a unghiului dintre 2 vectori
>> v1=[3 5]
v1 =
3 5
>> v2=[5 6]
v2 =
5 6
>> unghi=acos(dot(v1,v2)/(norm(v1)*norm(v2)))
unghi =
0.1543
Unde dot(v1,v2) reprezinta produsul scalar dintre 2 vectori v1 si v2 , iar norm(v1) si norm(v2) reprezinta norma celor 2 vectori v1 si v2
30) Produsul scalar a 2 vectori cu functia dot
>> v1=[3 5]
v1 =
3 5
>> v2=[5 6]
v2 =
5 6
>>dot(v1,v2)
31) Unghiul dintre 2 vectori folosind functia angle
>> angle(complex(5,6)-complex(3,5))
ans =
0.4636
32) Compararea a 2 vectori
Exemplul 1:
a=[1 1 1 1 1 2 2 3 4 5 6 7] b = [1 1 1 2 2 3 5 7]'
Si vrem sa obtinem c=[ 1 1 4 6 ]
>>[uab] = union(a,b) n = histc(a,uab) - histc(b,uab) uab = uab(n>0) n = n(n>0)
Exemplul2:
Avem 2 vectori:
a=[1,10,7,3,4]; b=[10,7];
Si vrem sa obtinem
r =
1 3 4
>> a=[1,10,7,3,4]; b=[10,7]; r=a(~ismember(a,b))
r =
1 3 4
Exemplul3: Folosind functia setdiff de comparare si afisare a elementelor care nu sunt comune intre cei 2 vectori
Fie vectorii:
a=[1 4 7 10]
b=[7 10]
Si vrem sa obtinem vectorul c=[1 4]
>> c=setdiff(a,b)
c =
1 4
33) Functia nnz- numara cate elemente diferite de 0 sunt in vector
>> a=[1 0 0 -1 2 3 4] %definirea vectorului cu 7elemente in consola matlab
a =
1 0 0 -1 2 3 4
>> b=nnz(a) %aplicarea functiei nnz pentru numararea elementelor diferite de 0 din vector
b =
5
O alta metoda ar fi sa folosim functia size pt.vectorul nostru:
>> a=[1 0 0 -1 2 3 4]
a =
1 0 0 -1 2 3 4
>> size(find(a~=0),2)
ans =
5
>>
34) Functia numel -numara cate elemente sunt in vector
>> a=[1 0 0 -1 2 3 4] %definirea vectorului cu 7elemente in consola matlab
a =
1 0 0 -1 2 3 4
>> n=numel(a) %aplicarea functiei numel pentru numararea elementelor din vector
n =
7
35) Atribuire vector A intr-un alt vector B care are elementele inversate
Aici un exemplu:
>>A = [ -2, 1, 0, 76, -30, 10] Si vrem sa obtinem :
B = [10, -30, 76, 0, 1, -2];
Solutie:
B=A(end:-1:1)
|
|