View
346
Download
0
Category
Preview:
Citation preview
Inleiding tot het gebruik van MATLAB
Cursus ChemometriePiet Van Espen
• 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)
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
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.
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
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
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".
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.
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.
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
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
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
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
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
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
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)
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
Genereren van vectoren
Om vectoren op te vullen met getallen gebruikt men het ':' karakter, bijvoorbeeld
x=1:5
x =
1 2 3 4 5
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
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
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
Recommended