inleiding matlab
TRANSCRIPT
![Page 1: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/1.jpg)
Inleiding tot het gebruik van MATLAB
Cursus ChemometriePiet Van Espen
![Page 2: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/2.jpg)
• omgeving voor het uitvoeren van numerische berekeningen en visualisering
• Matlab is sinds enkele jaren de de-facto standaard in de chemometrie.
• Specifieke functies worden gewaard in m-bestanden (m-files) een collectie van deze m-bestanden, ontwikkeld voor een bepaalde toepassing, noemt men een toolbox.
• Matlab werd oorspronkelijk ontwikkeld door Cleve Moler en wordt thans verdeeld door "The MathWorks, Inc., Mass., USA (http://www.mathworks.com).
MATLAB (MATrix LABoratory)
![Page 4: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/4.jpg)
2. Essentiële elementen van de Matlab taal
Matrichesomgeven door vierkante haken [ ], ";" geeft het einde van een rij aan.
A = [ 1 2 3 ; 4 5 6 ; 7 8 9 ] A = 1 2 3 4 5 6 7 8 9
X = [ -1.3 sqrt(3) (1+2+3)*4/5 ] X = -1.3000 1.7321 4.8000
Elementen van de matrix: ronde haken ( )
X(5) = abs( X(1) ) X = -1.3000 1.7321 4.8000 0 1.3000
![Page 5: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/5.jpg)
Een matrix kan geconstrueerd worden uitgaande van andere matriches
R = [ 10 11 12 ]; A=[A;R] A = 1 2 3 4 5 6 7 8 9 10 11 12
Een submatrix kan geëxtraheerd worden uit een matrix
Z=A(1:2,:) Z = 1 2 3 4 5 6
de eerste 2 rijen en alle kolommen uit A.
![Page 6: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/6.jpg)
Commando's en variabelen
variabele = uitdrukking
ofuitdrukking
1900/81
ans = 23.4568
y = 1900/81;
commandolijn over meer dan een regel: "..."
s= 1 - 1/2 + 1/3 - 1/4 +1/5 -1/6 +1/7...-1/8 +1/9 -1/10 +1/11 -1/12
![Page 7: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/7.jpg)
De werkomgeving (Workspace)
Alle variabelen opgeslagen in de werkomgevingDe inhoud van de werkomgeving kan getoond worden met de functie who
who Your variables are:
A R Z s B X ans
Om de dimensies van deze variabelen te zien, gebruik je de functie whos
whos Name Size Elements Bytes Density Complex A 4 by 3 12 96 Full No B 3 by 3 9 72 Full No R 1 by 3 3 24 Full No X 1 by 5 5 40 Full No Z 2 by 3 6 48 Full No ans 1 by 1 1 8 Full No s 1 by 1 1 8 Full No
Grand total is 37 elements using 296 bytes
![Page 8: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/8.jpg)
Hulp functies
Om hulp te vragen omtrent Matlab functies en procedures, kan je help typen
help HELP topics:
toolbox\local - Local function library.matlab\datafun - Data analysis and Fourier transform…matlab\elfun - Elementary math functions...For more help on directory/topic, type "help topic".
![Page 9: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/9.jpg)
help exp EXP Exponential. EXP(X) is the exponential of the elements of X, e to the X. See also LOG, LOG10, EXPM, ARITH, POW2.
help elfun Elementary math functions.
Trigonometric. sin - Sine. sinh - Hyperbolic sine.
... Exponential. exp - Exponential. log - Natural logarithm.
![Page 10: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/10.jpg)
Beëindigen van Matlab.
• quit of exit
• save -> werkruimte bewaren in een bestand "matlab.mat“
• load -> volgende Matlab sessie variabelen terug te laden.
Je kan save/load ook een bestandsnaam opgeven. :save les1
maakt het bestand les1.mat aan.
![Page 11: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/11.jpg)
Getallen en bewerkingen
rekenkundige bewerkingen:+ optelling – aftrekking * vermenigvuldiging / deling ^ machtsverheffing
f=12.5+(2/3 - 1.2e-2)/2^3 f = 12.5818
Deze bewerkingen zijn toepasbaar op scalaire grootheden, vectoren en matriches.
Het getal p wordt gegeven door de functie pi.
pi ans = 3.1416
![Page 12: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/12.jpg)
De waarden oneindig (inf) en onbepaald (NaN, Not a Number)
1/0 Warning: Divide by zeroans = Inf 0/0 Warning: Divide by zeroans = NaN
Complexe gatallen worden gevormd door i of j te plaatsen bij het imaginaire deel
z=3+4*i z = 3.0000 + 4.0000i
![Page 13: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/13.jpg)
sqrt(-1)
ans = 0 + 1.0000i 1 i
imag(log(-1))
ans = 3.1416
exp(-pi*i)
ans = -1.0000 - 0.0000i
Im(log( )) 1
e i 1
![Page 14: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/14.jpg)
Functies
Ingebouwde functiesFuncties beschikbaar via m-filesDoor gebruiker ontwikkelde functies
x=sqrt(log(3)) x = 1.0481
x=[23 46 87 1 26 0 -4]; Xmax=max(x) Xmax = 87
[Xmax,Imax]=max(x) Xmax = 87Imax = 3
![Page 15: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/15.jpg)
3. Matriches en Vectoren
TransponerenA=[1 2 3; 4 5 6; 7 8 0] A = 1 2 3 4 5 6 7 8 0
B=A' B = 1 4 7 2 5 8 3 6 0
x=[-1 0 2]; x=x' x = -1 0 2
![Page 16: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/16.jpg)
Optelling en aftrekking
Optellen en aftrekken: matriches en vectoren van dezelfde dimensie
C=A+B C = 2 6 10 6 10 14 10 14 0
en tussen een matrix of een vectoren en een scalaire grootheid
C-10 ans = -8 -4 0 -4 0 4 0 4 -10
![Page 17: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/17.jpg)
Vermenigvuldiging en deling
Ak x n*Bn x m -> Ck x m
x=[-1 0 2]; (1x3)y=[-2 -1 1]'; (3x1)y*x ans = 2 0 -4 1 0 -2 -1 0 2 (3x3)x*y ans = 4 (1x1)
![Page 18: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/18.jpg)
De deling van twee matriches wordt als volgd geinterpreteerd• X = A\B is de oplossing van de vergelijking AX = B, of X = A-1B• X = B/A is de oplossing van de vergelijking XA = B, of X = BA-1
Voor vectoren bestaat er nog de operatie .* element per element vermenigvuldiging
x=[1 2 3]; y=[4 5 6]; z=x.*y z = 4 10 18
![Page 19: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/19.jpg)
Genereren van vectoren
Om vectoren op te vullen met getallen gebruikt men het ':' karakter, bijvoorbeeld
x=1:5
x =
1 2 3 4 5
![Page 20: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/20.jpg)
Elementen van een vector of matrix
Deze kunnen aangeduid worden door gebruik te maken van haakjes ( )en door gebruik te maken van het ":" karakter.
A=[1 2 3; 4 5 6; 7 8 9] A = 1 2 3 4 5 6 7 8 9
A(1,3)+A(3,1) ans = 10
A(:,3) de derde kolomans = 3 6 9
A(1:2,2:3) de rijen 1 en 2 en kolommen 2 en 3ans = 2 3 5 6
![Page 21: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/21.jpg)
4. Inlezen van gegevens
bestand met naam count.dat, dat de volgende gegevens bevat:
11 57 29143 178 101138 163 1095...10 51 286
load count.dat
=> gegevens in de matrix count
![Page 22: Inleiding matlab](https://reader036.vdocuments.pub/reader036/viewer/2022062406/559230f71a28ab492f8b45c9/html5/thumbnails/22.jpg)
5. Grafieken
functie plot( )• plot(y): grafiek y(i) tov i• plot(x,y): grafiek y tov x
t=0:pi/100;pi*2; x=sin(t); y1=sin(t+0.25); y2=sin(t+0.5); plot(x,y1,'o',x,y2,'+')
-1 -0.5 0 0.5 1-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1