Vectoren: Vectorrekening in MATLAB
Creatie van vectoren
In MATLAB is een vector een 1-dimensionale array van getallen. Je kunt zowel met rijvectoren als met kolomvectoren werken.
Rij- en kolomvectoren Een rijvector maak je door de getallen in een lijst te zetten en te scheiden met een spatie of komma.
Een kolomvector krijg je wanneer je de componenten scheidt met puntkomma's.
Hieronder staan, achter de prompts in het MATLAB commando venster, opdrachten om een vector van elk type te creëren. De laatste opdracht illustreert dat een getransponeerde vector verkregen wordt m.b.v. een apostrof teken.
>> rv = [4 5 6] % rijvector
rv =
4 5 6
>> kv = [4; 5; 6] % kolomvector
kv =
4
5
6
>> kv' % getransponeerde vector
ans =
4 5 6
Dimensie en norm Met de length
instructie kun je de dimensie van een vector achterhalen; verwar dit dus niet met wat in de wiskunde onder de (Euclidische) lengte van een vector verstaan wordt, namelijk de norm. Deze bereken je numeriek in MATLAB met het commando norm
en er zijn opties om varianten te berekenen
>> dimensie = length(rv)
dimensie =
3
>> lengte = norm(rv) % Euclidische lengte
lengte =
8.7750
>> norm1 = norm(rv,1) % som van absolute waarden van componenten
norm1 =
15
>> infnorm = norm(rv,inf) % maximum van absolute waarden van componenten
infnorm =
6
Speciale constructievormen Verder zijn er speciale commando's om specifieke vectoren te maken; we tonen een paar veel gebruikte constructies.
>> v1 = 5:10 % van 5 t/m 10
v1 =
5 6 7 8 9 10
>> v2 = 10:-2:5 % van 10 t/m 5 met stapjes van -2
v2 =
10 8 6
>> v3 = linspace(0,1,6) % gelijkmatige verdeling van 6 punten over [0,1]
v3 =
0 0.2000 0.4000 0.6000 0.8000 1.0000
>> v4 = zeros(3,1) % kolomvector met 3 nullen
v4 =
0
0
0
>> v5 = ones(1,3,'logical') % rijvector met logische waarden 1
v5 =
1×3 logical array
1 1 1
>> v6 = [] % lege 0-dimensionale vector
v6 =
[]
Aan elkaar plakken van vectoren Je kunt ook nieuwe vectoren creëren door vectoren aan elkaar te plakken.
>> v1 = 1:3; v2 = 4:6; v12 = [v1 v2]
v12 =
1 2 3 4 5 6
Willekeurig gegenereerde vectoren In simulaties zullen we veel gebruik maken van vectoren met willekeurig gegenereerde getallen, in het Engels random number genoemd. Hiervoor zijn verschillende instructies:
rand |
willekeurige getallen tussen 0 en 1 via een uniforme distributie |
randi |
willekeurige getallen via een discrete uniforme distributie |
randn |
willekeurige getallen via de standaard normale verdeling |
>> rand(1,5) % 5 willekeurige getallen tussen 0 en 1
ans =
0.7577 0.7431 0.3922 0.6555 0.1712
>> randi( [5,8], 1, 10 ) % 10 willekeurige gehele getallen tussen 5 en 8 (inclusief)
ans =
8 7 7 8 8 7 5 5 8 5
>> randn(1,8) % 8 willekeurige getallen volgens standaard normale verdeling
ans =
-0.0245 -1.9488 1.0205 0.8617 0.0012 -0.0708 -2.4863 0.5812
>> x = -5:0.5:5;
>> y = randn(1,10000);
>> h = histogram(y,x); % construeer een histogram van de data en toon diagram
>> set(h,'FaceColor','r','EdgeColor','w') % pas diagramstijl aan