inleiding matlab

23
Inleiding tot het gebruik van MATLAB Cursus Chemometrie Piet Van Espen

Upload: techna05

Post on 30-Jun-2015

346 views

Category:

Business


0 download

TRANSCRIPT

Page 1: Inleiding matlab

Inleiding tot het gebruik van MATLAB

Cursus ChemometriePiet Van Espen

Page 2: Inleiding matlab

• 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 3: Inleiding matlab

1. Gebruik van Matlab

Commando venster

Voorbeeld

Page 4: Inleiding matlab

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Page 23: Inleiding matlab

Matlab DEMO