Innehåll
1 Vad är MATLAB?
1.1 Vad kan man göra med MATLAB?
1.2 Några MATLAB–exempel
1
1
2
2 Grunderna i MATLAB
2.1 Utvecklingsmiljön i MATLAB
2.2 Hjälpkommandon och demonstrationsexempel
2.3 Introduktion till matriser i MATLAB
2.4 Variabler i MATLAB
2.5 Aritmetiska uttryck och matematiska funktioner
2.6 Utskriftsformat
2.7 Spara resultat, lagra och hämta data
2.8 M–filer: kommando- och funktionsfiler
17
17
20
22
26
29
36
37
39
3 Matrisoperationer
3.1 Indexering av matriser
3.2 Addition och subtraktion
3.3 Multiplikation
3.4 Division
3.5 Transponering och konjugering
3.6 Elementvisa aritmetiska operationer
3.7 Elementvisa funktioner
3.8 Potenser och funktioner av matriser
3.9 Relationsoperatorer
3.10 Logiska operatorer
3.11 Logiska funktioner för matriser
43
43
45
45
48
49
50
51
52
53
55
56
4 Att skapa nya matriser
4.1 Matrisbyggande funktioner
4.2 Tomma matriser
4.3 Generering av vektorer och delmatriser
4.4 Speciella matriser i MATLAB
59
59
68
70
73
5 Strängar och andra datatyper
5.1 Datatyper
5.2 Strängar
5.2.1 Tilldelning
5.2.2 Strängkommandon
5.2.3 Utskrift och inläsning
5.2.4 Evaluering av strängar
5.3 Heltal
5.4 Bitvisa operationer
5.5 Mängder
77
77
80
80
81
88
90
94
94
95
vi Innehåll
5.6
5.7
Cellmatriser
Strukturer
96
99
6 Dataanalys och statistik
6.1 Maximum och minimum
6.2 Summa, produkt och differens
6.3 Statistikkommandon
6.4 Sortering
6.5 Histogram och stapeldiagram
6.6 Triangulering av områden
6.7 Polygonanalys
101
101
102
105
108
109
112
113
7 Linjära ekvationssystem
7.1 Determinant, invers, rang mm
7.2 Lösning av ekvationssystem och LU–uppdelning
7.3 Trappstegsmatriser
7.4 Cholesky–uppdelning
7.5 QR–faktorisering
7.6 Normer och konditionstal
7.7 Över– och underbestämda ekvationssystem
115
115
118
122
124
125
129
132
8 Egenvärden och egenvektorer
8.1 Beräkning av egenvärden och egenvektorer
8.2 Övre Hessenberg–form, QR– och QZ–uppdelning
8.3 Schur–uppdelning och singulärvärdesuppdelning
137
137
142
146
9 Glesa matriser
9.1 Inledning och bakgrund
9.2 Att skapa och omvandla glesa matriser
9.3 Operationer på glesa matriser
9.4 Specialfall av glesa matriser
9.5 Ekvationssystem med gles matris
151
151
151
153
156
159
10 Analys av funktioner, interpolation och kurvanpassning
10.1 Polynom i MATLAB
10.2 Nollställen till funktioner
10.3 Minimum och maximum av funktioner
10.4 Interpolation, kurvanpassning och ytanpassning
10.5 Signalanalys
165
165
168
171
174
182
11 Integraler och differentialekvationer
11.1 Integralberäkning
11.2 Differentialekvationer
11.2.1 Begynnelsevärdesproblem
11.2.2 Fördröjda differentialekvationer (delay differential equations)
11.2.3 Randvärdesproblem
11.2.4 Partiella differentialekvationer
185
185
188
188
196
198
203
Innehåll vii
12 Programmering i MATLAB
12.1 Översikt och grundläggande begrepp
12.2 Logiska uttryck
12.3 Villkorssatser
12.3.1 if-satsen
12.3.2 switch-satsen
12.4 Repetitionssatser
12.4.1 for-satsen
12.4.2 while-satsen
12.4.3 break- och continue-satserna
12.5 Felhantering
12.6 Parametrar till funktioner
12.6.1 Antal argument
12.6.2 Funktion som parameter
12.7 Underfunktioner och privata funktioner
12.8 Variablers räckvidd och livstid
12.9 Mer om M-filer
12.10Objektorienterad programmering
12.11Hjälpverktyg för programutveckling
12.11.1 Felsökning
12.11.2 Versionshantering
12.11.3 Tidtagning
207
207
208
208
208
211
212
212
217
219
221
223
223
227
231
231
233
236
245
245
250
250
13 Grafik
13.1 Grafikfönstret
13.2 2D–grafik
13.3 Att rita i andra koordinatsystem och i det komplexa talplanet
13.4 Manipulation av grafik och fönster
13.5 Att skapa ytnät och rita nivåkurvor
13.6 3D–grafik
13.7 Grafer av funktioner av två variabler
13.8 Ljus–, vy– och kamerainställningar
13.9 Grafer av funktioner av tre variabler
13.10Grafer av vektorfält
13.11Färgkontroll
13.12Film och bildspel
253
253
256
265
268
280
286
289
296
303
306
309
316
14 Avancerad grafik
14.1 Uppbyggnaden av en bild
14.2 Grafiska objekt
14.2.1 Allmänna funktioner
14.2.2 Gemensamma attribut och metoder
14.2.3 Rotobjektet
14.2.4 Figurobjekt
14.2.5 Ritområdesobjekt
14.2.6 Uicontrol-objekt
14.2.7 Uimenu-objekt
14.2.8 Uicontextmenu-objekt
14.2.9 Bildobjekt
321
321
323
325
330
332
334
339
346
349
351
352
viii Innehåll
14.2.10 Linjeobjekt
14.2.11 Polygonobjekt
14.2.12 Ytobjekt
14.2.13 Rektangelobjekt
14.2.14 Textobjekt
14.2.15 Belysningobjekt
14.3 Grafiska användargränssnitt
14.3.1 Guide
14.3.2 Huvudfönstret i Guide
14.3.3 Egenskapseditorn
14.3.4 Justeringsverktyget
14.3.5 Svarsfunktioner
14.3.6 Menyverktyget
354
355
362
365
366
369
371
377
378
380
382
383
385
15 MATLAB i samverkan med andra programspråk
15.1 MATLAB med Fortran och C, inledning
15.2 Kompilering av C och Fortran-filer
15.3 MATLAB och C
15.3.1 Hantering av mxArray-er i C
15.3.2 Hantering av MAT-filer i C
15.3.3 Anrop av MATLAB från C
15.3.4 Anrop av C från MATLAB
15.4 MATLAB och Fortran
15.4.1 Hantering av mxArray-er i Fortran
15.4.2 Hantering av MAT-filer i Fortran
15.4.3 Anrop av MATLAB från Fortran
15.4.4 Anrop av Fortran från MATLAB
15.5 MATLAB och Java
15.5.1 Inledning
15.5.2 Hur MATLAB hittar Java-klasser
15.5.3 Konstruktion av Java-objekt
15.5.4 Anrop av metoder
15.5.5 Åtkomst av instans- och klassvariabler
15.5.6 Arrayer
15.5.7 Java-metoder som påverkar MATLABs kommandon
15.5.8 Användargränssnitt i Java
387
387
388
390
390
399
402
404
410
410
412
414
415
417
417
417
419
420
421
423
425
425
16 Systemkommandon och filhantering
16.1 Systemkommandon
16.2 Tidsfunktioner
16.3 Utskrift på papper eller fil
16.4 Filhantering
16.5 MATLAB och avancerad filhantering
16.6 Ljud
431
431
435
441
443
448
454
A Snabbreferens för vanliga kommandon och funktioner
457
Innehåll ix
B Introduktion till linjär algebra
B.1 Vektorer
B.2 Matriser, inledning
B.3 Matrisbegrepp
B.4 Matrisklasser
B.5 Speciella matriser och hjälpmatriser
B.6 Normer för vektorer och matriser
B.7 Faktorisering av matriser
461
461
464
465
467
468
469
471
C MATLAB–toolboxar och Simulink
473