MATLAB Afslutning
description
Transcript of MATLAB Afslutning
![Page 1: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/1.jpg)
MATLAB Afslutning
Anders P. Ravn
Institut for Datalogi
Aalborg Universitet
Forår 2005
![Page 2: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/2.jpg)
MATLAB
• Hvorfor?
• Hvordan?
![Page 3: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/3.jpg)
Et værktøj til tekniske beregninger
• Analyse og modellering af data
• Simulering af modeller
![Page 4: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/4.jpg)
Værktøjskasser osv.
![Page 5: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/5.jpg)
Andre muligheder
• Lommeregner
• Regneark (Excel)
• Maple
• MathCad
• SAS
• …Brug det rigtige værktøj til opgaven
![Page 6: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/6.jpg)
Structures
v1= struct('Varenavn', 'Papirclips', 'Pris', 19.95)
v1 =
Varenavn: 'Papirclips' Pris: 19.9500
![Page 7: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/7.jpg)
En ny stuktur
>>v1= struct('Varenavn', 'Papirclips', 'Pris', 19.95)v1 = Varenavn: 'Papirclips' Pris: 19.9500
>>v2 = v1; v2.Varenavn = 'Elastikker'; v2.Pris= 17.50; >>v2
v2 =
Varenavn: 'Elastikker' Pris: 17.5000
![Page 8: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/8.jpg)
En database
>> v3 = v1; v3.Varenavn = 'Tape'; v3.Pris= 9.25; v3v3 = Varenavn: 'Tape' Pris: 9.2500>> lager = [v1 v2 v3]
lager = 1x3 struct array with fields: Varenavn Pris
>> lager(2).Prisans = 17.5000
![Page 9: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/9.jpg)
En database-operation
function pris=findpris(varelager,vare)for v = varelager if strcmp(v.Varenavn,vare) pris= v.Pris; return; endendpris = -1
>> findpris(lager,'Tape')
ans = 17.5000
m-fil
![Page 10: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/10.jpg)
Data analyse – fiskeskiver
0 10 20 30 40 50 60 70 80 90 1000
5
10
15
20
25
30
35
![Page 11: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/11.jpg)
Positionsbestemmelse
p = [x , y]
w1 = [a,b] -- lokalt
A = [ cos(theta) sin(theta) -sin(theta) cos(theta) ]
wl GLOBAL = ( p’ + A*w1’)’
p
M1
?
M1‘ = p ‘+ X*w1’
![Page 12: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/12.jpg)
Løsningsforsøg
p
X = (M1‘ - p ‘)/w1’
» p = [1 1];
» w1 = [1 0.5];
» M = [1.5 0];
» (M' - p')/w1'ans = 0.5000 0 -1.0000 0
M1‘ = p ‘+ X*w1’
![Page 13: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/13.jpg)
Bedre forsøg
M1‘ = p ‘+ X*w1’
X= [ cos(theta) sin(theta) -sin(theta) cos(theta) ]
f(theta) = M1‘ - p‘ - X *w1’
Dvs . f(theta) = [ 0 0]’
Husk så at for vektor a gælder: a*a’ = |a|2
Dvs. Vi kan finde minimum for
z(theta) = f(theta) * f(theta)’
function r = fz(theta)global M p w1;
X = [cos(theta), sin(theta); -sin(theta), cos(theta)];
f = M' - p' - X*w1';
r = f'*f;
![Page 14: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/14.jpg)
Løsning
p
» global p M w1» p = [1 1];» w1 = [1 0.5];» M = [1.5 0];
» fmin('fz', 0, 2*pi)ans = 1.5708» ans/pians = 0.5000
» M = [0 0];» fmin('fz', 0, 2*pi)ans = 2.8198» ans/pians = 0.8976
![Page 15: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/15.jpg)
Eksempelfunction r = fz(x)global M p w1; X = [cos(x), sin(x); -sin(x), cos(x)]; r1 = M' - p' - X*w1'; r = r1'*r1;
» global M w1 p» M = [1.5 0]» w1 = [1 0.5]» p = [1 1]
» fmin('fz',0,pi)/pians = 0.5000
fz(ans*pi)ans = 1.2326e-032
![Page 16: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/16.jpg)
BillederB = imread('image.bmp','bmp') ;» size(B)
ans =
1008 886 3
» image(B)
100 200 300 400 500 600 700 800
100
200
300
400
500
600
700
800
900
1000
![Page 17: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/17.jpg)
Billedbehandling» Udsnit = B(101:104, 301:304, :)Udsnit(:,:,1) = 188 183 176 182 198 182 172 172 188 195 173 159 185 188 169 156Udsnit(:,:,2) = 183 168 162 172 190 172 169 167 179 185 172 158 179 179 166 151Udsnit(:,:,3) = 179 163 159 171 187 163 162 163 174 176 167 153 167 170 157 147
» image(Udsnit);
100 200 300 400 500 600 700 800
100
200
300
400
500
600
700
800
900
1000
0.5 1 1.5 2 2.5 3 3.5 4 4.5
0.5
1
1.5
2
2.5
3
3.5
4
4.5
![Page 18: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/18.jpg)
Forbrænding
Et kulpartikel brænder: - Nogle dele er dækket af en askeflage - Andre dele er glød
Hvordan udvikler det sig ?
![Page 19: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/19.jpg)
En model
function Pnext = step(P,f)
% Simulering af forbrænding: emne er matrix P
% med glød = 1
% aske = 0
% Sandsynlighed for glød i næste trin
% afhænger af om naboer er ens, samt en
% koefficient f.
% Naboer regnes cyklisk.
![Page 20: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/20.jpg)
Algoritmenfunction Pnext = step(P,f)d = size(P); Pnext = zeros(d);
for i = 1:d(1), for j = 1:d(2), n = P(op(i,d(1)), j ); e = P(i, ned(j,d(2)) ); s = P(ned(i,s(1)), j ); v = P(i, op(j,d(2)) ); if (2+n+sy+e+v)*f*rand > 0.5, Pnext(i,j) = 1; end; end;end;
function r = ned(k,n);r = k-1; if r == 0, r = n; end;
function r = op(k,n);r = k+1; if r > n, r = 1; end;
![Page 21: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/21.jpg)
SimuleringP = rand(7, 8) > 0.5; pcolor(P);
P = step(P, 0.5); pcolor(P);…
1 2 3 4 5 6 7 81
2
3
4
5
6
7
1 2 3 4 5 6 7 81
2
3
4
5
6
7
![Page 22: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/22.jpg)
Simpel Ind- og Udlæsning
» help iofun
File import/export functions. load - Load workspace from MAT-file. save - Save workspace to MAT-file. ... Command window I/O clc - Clear command window. home - Send cursor home. disp - Display array. input - Prompt for user input. pause - Wait for user response.
![Page 23: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/23.jpg)
Formatteret Ind- og Udlæsning
File opening and closing. fopen - Open file. fclose - Close file. Formatted file I/O. fscanf - Read formatted data from file. fprintf - Write formatted data to file. ...
![Page 24: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/24.jpg)
FormaterThe format specifier :
% [- | + | 0] [Field Width][.Precision] Format Character "-" aligns output left (usually, it's right-aligned). "+" outputs a plus sign for positive numbers (usually, it is supressed). “0” outputs leading zeroes.
The field width specifies the overall field length.
The precision specifies the length of the fractional part for floating point numbers. If omitted, the default is 6. The format character determines the base type for the formatted values: "d": integer value in decimal format. "f": floating point value in fixed format (xxx.yyyyyy). "e": floating point value in scientific format (0.yyyyyye+zzz). "E": floating point value in scientific format (0.yyyyyyE+zzz). "s": String.
![Page 25: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/25.jpg)
Eksempel
fprintf(red_file,'Jordens radius: %9.0f m\n',R);
fprintf(red_file,'Refraktionskoefficient: %9.2f\n',k);
fprintf(red_file,'\r\n');
fprintf(red_file,' Fra Til V Sd ih sh S d_H\n');
fprintf(red_file,' gon m m m m m\n');
Jordens radius: 6386000 m
Refraktionskoefficient: 0.13
Fra Til V Sd ih sh S d_H
gon m m m m m
![Page 26: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/26.jpg)
Eksempel
…
fprintf(red_file,'%5.0f %5.0f %9.4f %9.3f %9.3f %9.3f %9.3f%9.3f\n',linie);
5007 5001 99.8900 307.762 1.640 1.555 307.762 0.623
![Page 27: MATLAB Afslutning](https://reader036.fdocument.pub/reader036/viewer/2022062518/56814b39550346895db8410b/html5/thumbnails/27.jpg)
Nu til Øvelser
• Saml op på tidligere øvelser
• Kig på opgave