Overzicht inleiding programmeervaardigheden, MatLab
Matrix vermenigvuldigen
M(3,4) aantal kolommen
Aantal rijen
Voorwaarde
; niet gelijk
(3,4)*(5,8) (3,4)x(4,8) kan wel, geeft een nieuwe matrix van (3,8)
Grootte na vermenigvuldiging
M= [1 2 3]
N= [4;5;6]
O=[4 2;5 3;6 4]
Q=[5 8]
M*N=32
N*M=
4 8 12
5 10 15
6 12 18
M*O=32 20
O*M= error; incorrect dimensions for matrix multiplication
O.*M= error; matrix dimensions must agree
N*Q= error; incorrect dimension for matrix multiplication
N.*Q=
20 16
25 24
30 32
De . zorgt voor elementsgewijs matrix vermenigvuldiging. Elk element van N wordt nu
vermenigvuldigd met elk element van Q.
Invoeren van matrix;
‘Spatie’ voor een nieuwe kolom, ‘;’ voor een nieuwe rij
M=[1 2 3;4 5 6;7 8 9]
M=
1 2 3
4 5 6
7 8 9
rand(2,3); matrix van 2 bij 3 met random getallen tussen 0 en 1
zeros(2,3); matrix van 2 bij 3 met alleen maar nullen (handig voor het maken van grote matrices,
scheelt veel tijd met het runnen van het script)
ones(2,3); matrix van 2 bij 3 met alleen maar enen
magic(N,N); matrix van N bij N met getallen 1 tot en met N 2, met gelijke rij-, kolom- en diagonaal
sommen. Voor N>0 en N≠2
Bovengenoemde commando’s kunnen ook gebruikt worden voor het aanmaken van array’s;
X=randi(20,[1,10]) geeft een array van 20 waarden met getallen random variërend van 1 tot 10.
A(2,3) A’ (3,2) of transpose(A) transponeren van rijen en kolommen. De kolommen worden rijen
en de rijen worden kolommen.
flipud(A) matrix wordt boven / onder gekanteld
fliplr(A) matrix wordt links / rechts gekanteld
, Matrix indexing
In editor;
- Var=A(2,3) geeft de waarde die in rij 2 kolom 3 staat
- Var=A(1:3,2:end) geeft getallen van rij 1 tot en met 3 en kolom 2 tot en met de laatste
- Var=A(9) geeft het getal dat op plek 9 gaat (per kolom)
In command window;
- A(2,:) geeft alle kolommen van rij 2
- A(:,2) geeft alle rijen van kolom 2
- A(2:4,:) geeft alle kolommen van rij 2 tot en met 4
- A([2 4],:) geeft de kolommen van rij 2 en 4
Een index van een matrix kan aangepast worden;
A(1,4)=5 het cijfer dat in rij 1 kolom 4 staat wordt veranderd naar een 5
A(1,4)*3 het cijfer dat in rij 1 kolom 4 staat wordt vermenigvuldigd met 3
Size(A) aantal rijen en kolommen; stel A(2,3) dan size(A)= 2 3
Size(A,1) geeft aantal rijen
Size(A,2) geeft aantal kolommen
Length (A) geeft het aantal kolommen, ook bij een rijvector
Min(A) maakt een rij vector met van elke kolom de laagste waarde
Min(min(A)) geeft de laagste waarde in de hele matrix
Max(A) maakt een rij vector met van elke kolom de hoogste waarde
Max(max(A)) geeft de hoogste waarde in de hele matrix
newMatrix=C-130 geeft een matrix van zelfde formaat als C maar van elke waarde in C is 130
afgetrokken.
Repmat([1 2 3],3,2) geeft een matrix van 3 rijen met 2 keer [1 2 3] dus;
1 2 3 1 2 3
1 2 3 1 2 3
1 2 3 1 2 3
Een array kun je maken door variabele=[minimumwaarde : interval : maximumwaarde]
Y=[1:2:10] y= 1 3 5 7 9
Z=mtimes(x,y) geeft hetzelfde resultaat als z=x*y
Indiceren van waarden in de cell kan met { }
num2str nummers veranderen in karakters om nummers en letters in dezelfde regel te zetten
(number to string)
nummer= ‘dit is nummer ‘
[‘nummer’ 15]=nummer (15 wordt gezien als een whitespace)
[‘nummer’ num2str(15)]= nummer 15
[nummer num2str(15)]= dit is nummer 15
disp([‘nummer’ num2str(15)])= nummer 15
[num2str(pi)]=3,14…
tekst tussen ‘ ‘ is een string
Q=’1 2 3’ leest matlab als een string
R=str2num(Q) nu zijn het weer cijfers en kan er mee gerekend worden
R=[‘Aap’; ‘Noot’; ‘Mies’] geeft een error, aap heeft 3 letters en noot en mies 4
R=[‘ Aap’; ‘Noot’; ‘Mies’] Aap
Noot
Mies
Door een spatie voor aap toe te voegen hebben alle rijen 4 waardes