Vectoren: Vectorrekening in MATLAB
Selectie van componenten en toewijzing van waarden
Selectie van componenten en deelvectoren Je kunt op verschillende manieren componenten van vectoren selecteren. We geven een paar voorbeelden, waaruit blijkt dat indexering begint bij 1 en er slimme manieren zijn om deelvectoren te creëren.
>> v = 6:10
v =
6 7 8 9 10
>> v(2) % een enkel element
ans =
7
>> v([2,4]) % meerdere componenten
ans =
7 9
>> v(2:4) % een deelvector
ans =
7 8 9
>> v(2:end) % alles behalve de eerste component
ans =
7 8 9 10
>> v(1:end-1) % alles behalve de laatste component
ans =
6 7 8 9
>> v(:) % alles als kolomvector
ans =
6
7
8
9
10
Selectie via logische expressies Je kunt ook logische indexering (met nullen en enen) gebruiken om componenenten van vectoren te selecteren. Hiervoor heb je relationele operatoren nodig, zoals uit onderstaande tabel. Behalve logische indexering kan je ook de find
instructie gebruiken om geschikte indices bij een logische uitdrukking op te sporen.
== | gelijk aan | ~= | niet gelijk aan |
< | kleiner dan | > | groter dan |
<= | kleiner dan of gelijk aan | >= | groter dan of gelijk aan |
>> v = 5:10
v =
5 6 7 8 9 10
>> v>8 % vectorwaarden 1 als aan de voorwaarde voldaan is en anders 0
ans =
1×6 logical array
0 0 0 0 1 1
>> v(ans) % selectie van componenten
ans =
9 10
>> find(v<8) % selectie van indices via find commando
ans =
1 2 3
>> v(ans) % selectie van componenten
ans =
5 6 7
Toewijzing Componenten waar je naar refereert kun je ook een waarde toewijzen
>> v = 5:10; v(1)=4; v % eerste component gelijk gesteld aan 4 v = 4 6 7 8 9 10 >> v(1:2) = 5 % eerste 2 componenten gelijk gesteld aan 5 v = 5 5 7 8 9 10 >> v(2) = [] % tweede component verwijderd v = 5 7 8 9 10 >> v(:) = 1 % alle componenten gelijk aan 1 gesteld v = 1 1 1 1 1
Door toewijzing kan je dus ook de structuur wijzigen. In onderstaand voorbeeld geven we de vector een extra component. Dit is overigens niet een aanbevolen manier om te werken. Het vooraf reserveren van voldoende ruimte voor componenten in een vector via de zero constructie en dan pas de data vector vullen met waarden door toewijzing is een betere manier om gegevens te verzamelen in MATLAB experimenten zoals de reactietijden op stimuli.
>> clear all
>> v = 5:7; % vector van lengte 3
>> v(4)= 8 % nieuwe component
v =
5 6 7 8