Scuola Universitaria Professionale della Svizzera Italiana

Dipartimento di informatica ed elettronica

Introduzione a Matlab
Ing. Roberto Bucher 7 aprile 2003

Introduzione a Matlab

2

Copyright 2003 Roberto Bucher

7 aprile 2003

Indice
1 Introduzione 1.1 Origini . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Piattaforme HW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.3 Toolbox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Basi 2.1 Introduzione . . . . . . . . . . 2.2 Tipi di dati . . . . . . . . . . 2.3 Indirizzamento di matrici . . 2.4 Manipolazione di matrici . . . 2.5 Espressioni . . . . . . . . . . 2.6 Informazioni sul Workspace . 2.7 Accesso al sistema operativo . 2.8 Salvataggio e richiamo di dati 2.9 Formati dei numeri . . . . . . 2.10 Altre caratteristiche di base . 2.11 Stringhe . . . . . . . . . . . . 13 13 13 13 15 15 15 17 18 19 19 21 21 22 22 23

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

. . . . . . . . . . .

3 L’Help in linea 25 3.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.2 Il comando help . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 3.3 Il comando lookfor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4 Calcolo scientifico 4.1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Funzioni matematiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.3 Numeri complessi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 Operazioni con matrici 5.1 Matematica tra scalari e matrici 5.2 Matematica tra matrici . . . . . 5.3 Orientazione delle matrici . . . . 5.4 Operatori relazionali e logiche . . 5.4.1 Operatori relazionali . . . 5.4.2 Operatori logici . . . . . . 5.5 Algebra lineare . . . . . . . . . .
7 aprile 2003

29 29 29 30 33 33 33 34 35 35 36 37
3

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

. . . . . . .

Copyright 2003 Roberto Bucher

13. . . . . . . . . . . . . . .1 Introduzione . . . . . . . . . . . . . . . . . . . . . . . . 13 Grafica 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12. . . . . . . . . . . . . . 89 18. . . . . . . . . . .4 Trasformazione di coordinate 13. . . 91 18. . . . . . . . . . . . . . . . . . . . 12. . . . . . . . . . . . . . . . . . 8. . . . .4 Ciclo switch-case . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. . . . . . . . . .2. . . . . . . . . . . . . . .Introduzione a Matlab INDICE 6 Matrici sparse 7 Semplici script 8 Programmi e controllo di flusso 8. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Premessa . . . . . . . . .6 Stampa di immagini . . . . . . . . . . . . . . . . . . . . 92 4 Copyright 2003 Roberto Bucher 7 aprile 2003 . . . . . . . . . . . . . . . . . . 13.2 Grafica 2D . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . .1 Matrici multidimensionali . . . . . . . .4 Ricerca di zeri . . . . . . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . . . . . . . .2 Controllo di flusso . . . . . . .2 Plotting . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .2 Celle . . . . . . . . . . . . . . . . . . . . 8. .3 Il comando subplot . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Integrazione e derivazione 51 55 57 57 57 57 58 58 59 59 59 61 62 62 66 66 69 73 77 81 . . . . 8. . . . . . . . . . . . . . . .2. . . . 13. . . . . . . . . . . . .3 Ciclo if-elseif-else . . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . 49 10 Polinomi 11 Interpolazione 12 Analisi numerica 12. . . . . .3 Strutture . . . . . . . .1 Ciclo for . . . . . . . .2. . . . . . . . . . . . . . . . . . . 12. . . . . . . . . . . . . . . . . . . . . . . . 12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 Animazioni . . .2 Ciclo while . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Introduzione . . . . . . 8. . . . . . . . . . . . . . . . . . . . . . . . 9 Analisi di dati 49 9. . . . . . . . . . . . . . . . . 41 43 45 45 46 47 47 47 47 . . . . . . . . . . . 18 Strutture particolari 89 18.5 Grafica 3D . .1 Programmi e funzioni . . . . . 14 Equazioni differenziali 15 Input/Output 16 Debugger 17 Grafica avanzata (GUI) . . . . .3 Ricerca di minimi . . . . . .

. . . . . . . . . A. . . .1 Control flow. .5 Bitwise operators. . A. . . . . . . . . . . . . . . . . . . .2 Exponential. . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Elementary matrices and matrix manipulation. . . . . . . . . . A. . . . . . .4. . . . . . . . . . . . . . . . 105 . . . 101 . . .6 Set operators. .1. . . . . . . .INDICE Introduzione a Matlab 19 Programmazione orientata agli 19. . . . . . . . . . A. 102 . . . .2 Basic array information. . . . . A. . . . . . . . . . . . . . . . . . . . . . 104 . . . . .1 Trigonometric.7 Specialized math functions. . . . . . .5 Ereditariet` a e aggregazione . . . . . . . . . . . . . . . . . .6. . . . . . . . . . . . . 105 . . . . . . . . . . . . .8 Profiling M-files. . 105 . . . . . . . . . . . . . . . . . .6. . . . . . . A. . .4. . . . . . . .1 Elementary matrices. 103 . . . . . . . .2 General purpose commands. . . . . . 102 . . . .3 Logical operators. . . . . . . . . . . 104 . . 104 . . . . . . A. . . . . . . . . . . . . . A. . .1 Arithmetic operators. . . . . . . . . . . . . . . . . . . . . .2 Managing the workspace. . A. . . . . . . . . . . . . . . . . 107 . . . . . . . . . . . . .4 Rounding and remainder. . 7 aprile 2003 . . . . . . A. . . . . . .3. . . . .2. . . . . . 103 . . A. .1. . . 101 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19. . . . . A. . .5. . A. . . . . . . .2 Relational operators. .3. . . . . . . . . . . A. . . . . . . .2. . . . . . . 95 95 95 96 98 99 A Comandi di Matlab A. . . . . .6. . . . . . . . . . . . . . .2. . . . . . . . . . . . .5 Controlling the command window. . . . . . . . 19. . . A. . . . . . . . . . . . . . . .6. . . A. A. . . . . . . . . . . . A. . . . . . . 108 . . . . . . . . . . . . . . . .3. . . . . . . . . . . . . . . . . . . . . . . . 103 . . . . 102 .4. A. . . 101 .4.5. . . . A. . .4 Programming language constructs. . . . . . . 101 . . . . . . . . . . . . . . . . . . .2. . . . . . . . . . . . . . .6 Operating system commands . . . . . A. . . . . . . . . A. . A. . . 19. . .4 Special variables and constants. . . . . . . . . . . . . . . 101 . . . . . . . . . . . 107 . . .4. .4 Special characters. . . . . . . . 108 . . . . . . . . . . . . . . . . . 103 . . . . . . . .5. . . . . . . . . . . . . . . . . . . . . . . .2. functions. . . . . . . . .3 Managing commands and functions. . . .1 Preferences. . . . . . . . . . . . . . .3 Configuration information. . . . . . . . . . . . . . . . 106 . . .5. . 103 . . . . . . . . . . . . . . . 106 . A. . .2 Evaluation and execution. . . . . 107 .4 Overloading . . . . . . . . . .3 Scripts. . A. . . . . . . . . . A. . . . . . . . . . .2. . . . A. . . . . A. 106 . . . . . . 109 5 Copyright 2003 Roberto Bucher . . . . . . . . . . 106 . .3 Matrix manipulation. . . . . . . . . . . . . . . . . . . . . .3 Complex. . . . . . . . .1 Saved preferences files. . . . . . . . . . .5. . . . . . . . . . . . 107 . A. . . . . . . . . . . . . . . . . .1 General information . . . . . . . . . . . . . . . . . . . . . . . A. 105 . . . . . . .2 Costruttori . .7 Debugging M-files. . . . 109 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Funzioni di conversione . . . .4. . . . . . A. . . . . . A. . . . . . . 106 . . . . . . . . . . . . . 102 . . . . . 101 . 101 . .4 Argument handling. . . . 105 . . . . . . . . A. .6 Elementary math functions. . and variables. . . . . . . . . A. . . . . . . . . . . A. . . . . . . . . . . oggetti .1 Introduzione .4 Managing the search path . . . . . . . . . 103 . . . . . . . . . . . . . . . . . 19. . . . . . . . . . . . . . . 102 . . . . . . A. . . . . . . . . . .2 Preference commands. . . . .5 Specialized matrices. . . . . . . . . . .3.3 Operators and special characters. . . . . . . . . . . . . . . A. . . . . . . . . . . . .6 Interactive input.1. .5 Message display. . . . A. . . . . . . . . . .2. . . 106 .2.3. . .

. . . . . .numerical linear algebra. .2 Linear equations. . . . . . . . . . . .2 Numerical integration (quadrature). . . . . . . . . . . . .Introduzione a Matlab INDICE A. . . . . . .4 Matrix functions. . . . . . . . . . . . . . . . . . . .11. . . . . . . . . . . . . . . . . . . . . . . . . . . .10. . . . . . . . . . . .1 Basic operations. .9. . . . . . . . . . . .5 Factorization utilities . . . . . . . . . . . . . . . . . . .1 Optimization and root finding. . A.11 Function functions and ODE solvers. . . . . . . . . . .10.4 Hardcopy and printing. . . A. . . . . . . . . . . . . . . .9. . . . . . . . . . . . . . .7. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . .14 Three dimensional graphs. . . . . . . . . . . . . . . . . . .11. . . . . A. . . . . . . . .12. . . .14. A. . . . . . . . . .1 Specialized math functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Data interpolation. . . . . . . . . . . .6 Linear Equations (iterative methods).10 Interpolation and polynomials. . . . . . . . A.13 Two dimensional graphs. . .7. . . . . .13. . . . . . . . . . . . . . . . . . . . . . A. . . .3 Coordinate transforms. . . . . . A. . . . . . . . . . A. . . . . . . . .12. .13. . . . . . A. . . . . . . . .11. A. . .10. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Elementary X-Y graphs.2 Number theoretic functions. .12. . . . . . . . . . . . . . . .8. . .5 Ordinary differential equation solvers. . . . . A. A. . . . . . .8.2 Spline interpolation. . . . A. . . A. . A. . .2 Color control. . . . . . . . A. . . . .2 Finite differences. . . . . . . . . . . . . .3 Geometric analysis. . . . . . . . . . . . . . . . . . . . . . . . . . .5 Linear algebra.12. . . . . .6 Sound and audio. . . . . . . A. . . . . . . . . . .10. . . . . . . .12. .11. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . . . . A. .4 Reordering algorithms. . . . . . . . . . .8. . . . . .12. . .9. A. . . . . . . . . . . . .6 ODE Option handling. . . . . . . . . . .2 Full to sparse conversion. . . . . . . . . . . . . .14. . . . . . . . . . . . . . . . . . . . .3 Working with sparse matrices. . . . . . . . . . . A. . .9. . . . . . . . . . . . . A. . .2 Axis control. . . . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . .12. . . . . . . . . . A. . . . . . .3 Correlation. . . . . . . . . . . . . . A. . . .11. . . . . . . . . . . . . . A. . . . . .7. . . . . . . . . . . . 109 109 110 110 110 110 110 111 111 111 111 111 111 112 112 112 112 112 112 113 113 113 113 113 113 113 114 114 114 114 114 114 114 115 115 115 115 115 116 116 116 116 116 116 116 116 117 7 aprile 2003 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Matrix analysis. . . . . . . . . . . . . . . .9 Data analysis and Fourier transforms.3 Graph annotation. . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . A. . . . . . . . . . .11. . . . . . . .3 Eigenvalues and singular values. . . . A. . . .7 Operations on graphs (trees). . . . . A. . . .13. . . . . . . . . . . . . . . . . . .9. . . . . . . . . . . . . . A. . . . .13. . . . . . . . . . . . .4 Polynomials. . . . . . . . . . . . . .9. . . . . . A. . . . .1 Elementary 3-D plots. . . . . . . . . . . . . . .7 ODE output functions. . .12 Sparse matrices. . . . . A. . . . A. . . . . . . . . .8 Matrix functions . . . . . . . . . . . . . .8. . . . . . . . . . . . . .12. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.1 Elementary sparse matrices. .3 Plotting. . . . . . . . . . .5 Fourier transforms. A. . A. . . . . . . . . . . . . . . . . . . . A. . A. . . . . . . . . .8.4 Inline function object. . . . . . . .9. . . . . . . .8 Miscellaneous. .4 Filtering and convolution. . . . . . . . . . . . . . . . . . . A. .11. . . . . . . . . . . . . . 6 Copyright 2003 Roberto Bucher . . . A. . .7 Audio file inport/export. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . A. . . . . . . . . A. .

. . . . . . . .INDICE Introduzione a Matlab A. . . . A. . . .6 Utilities. . . . . . . .2 Axis creation and control. . . . . . . . . . . . .18. .19. . . . . . . . . . . . . . . . . . . . A. . . . A. . . . . . . . . . . . . . . . A. . . . . . . . . A. . . A. . . .19. . . A. . . . . . . . . .2 Contour and 2-1/2 D graphs. A. . A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 General. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 Handle Graphics operations. . . . . . . . . . . .10 Command window I/O .16. . . . . . . . . . . . . . . . . . . . . . A. . . . . . . .19. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 GUI functions. . . . . A. . . . . . . . . . . . . . . . . . . . . . .19. . . A. . .19. . . A. . . . . . . . . . A. . . . . . . . . . . . . . . . . . . . . .1 Specialized 2-D graphs. . . . . . .2 Binary file I/O. . . . . . . . . . . . . . . . . . .15. . . . . . . . . .2 String tests.19 File input/output. . . .16. . . . . A. . . . . . . . . . . . . . . . A. . . . . .1 Figure window creation and control. . A. . . . . . . . A. .5 Toolbar button group utilities. . . . . . . . . . . . . . . . . . . . . .14. . . . . . . . . . . . . . . . . . . . . . . . . .17. . . . . . . . . A.7 Miscellaneous utilities. . . . . . . . .17. . . . . . . . . . . . . . . . . . . . A. . . . . . . . . .6 Color related functions. A. . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 File opening and closing. . . . . . . . . . . . . . . . . . . . . . .8 Image file import/export. . . . . .14. . . . . . .15. . . . .2 GUI design tools. . .7 File import/export functions. . . . . . . . . . . . . .15. . . . . . .3 Formatted file I/O. . . . . .4 Images display and file I/O.16. .15. .17. . . A. . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . . A. A. . . . . . . . . . . . . . . . . . . . . . . . . . A. A. .9 Audio file import/export. . . . . . .16.17 Graphical user interface tools. . . . A. .3 Handle Graphics objects. . . . . . . . . . . . . .4 String conversion. . . . .16 Handle Graphics. . . . . . .15. . . . .6 Viewpoint control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A.7 Graph annotation. . . . . . . . . . . . . . . . . . . . . . A. . . .4 String to number conversion. . . . . .3 String operations. . . . . . . . . . . . . . . A. . . . . . . . . . . . .6 File name handling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3 Lighting. . . . . . . . . . A. . . . . . .18. . . . . . .6 User-defined figure/axes property utilities. . . . . .5 Base number conversion. . . . . . . 7 aprile 2003 . .4 Menu utilities. . . . . A. . . . .18. . .5 Axis control. . . . . . . . .19. . . . .14. . . . . . . . . . . . . . . . A. . . . . . . . . . .18. . . . . . . . . . . . . . . . . . . . . . . .5 Movies and animation. . . . . . . . . . . . . . . . .18 Character strings. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .17. . . . . . . . . . . . .15 Specialized graphs. . . . . . . . . . . . . .14. . .5 File positioning. . . . . . . . . . . . . . A. . . . . . . . . . . . . 117 117 117 118 118 118 118 118 118 119 119 119 119 120 120 120 120 120 120 121 121 121 121 121 121 122 122 122 122 123 123 123 123 123 123 124 124 124 124 124 124 124 125 125 125 125 125 7 Copyright 2003 Roberto Bucher . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Hardcopy and printing. . . . . . .16. . . . . . . . . . . . . . . . . . . . . . . . .17. . . . . . . A. A. . . . . . . . . . A. . . . .14. . . . . . . . . A. A. . . . .15. .3 Dialog boxes. . . . . . . . . . . . .4 Color maps. . . . . . . . . . . .19.7 Solid modeling. . .14. . . . . . . . . . . . . . . . . . . . . A.20 Time and dates. . . . . . . . .16. . . . . . . . . . . . . . .15. . . . . . . A.5 Hardcopy and printing. . .3 Specialized 3-D graphs. . . .17. . . A. . . . . . . . . . . .19. . . . . . . . .17. A. . . .19. . . .19. . . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . .18. . A. . . .

. . . . . . B. . A. di Matlab . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Extras/Miscellaneous. . . . . . . . . . . . .8 text . . . . . . . . . . . .1 DDE Client Functions. . . . . . . . . . . . . . . . . . . . . . . . . . . 135 . . . . . . . . . . . . . . . . . . . . . . . . . .7 Extras/Gallery. . . . . . . . . . . . . . . .11 uimenu . . A. . . . . .6 Overloadable operators. . . . . . . . B Propriet` a degli B. . . . . . . .4 line . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . A. . 139 . . . . . .2 Basic functions. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .23. . . . . . . . . . . . . . . . . . . B.23. . . . .5 patch . . . . . . . .Introduzione a Matlab INDICE A. . . .20. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .8 Extras/Games. . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . B. . . B. . . A. . . . .23. . . . . A. . . . . . . . . . . . . . . . . . . . A. B. . . . . . . . . . 133 . . . . . . . . . . B. . .21. . . . . . . . . . . . . .2 MATLAB/Matrices.6 surface . . . . . . . . . . . . . .23. . 132 . .23 Examples and demonstrations. . . . . . . . . B. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21 Data types and structures. . A. . . . . . . A. . .5 Object oriented programming functions.3 Date functions. . . . . . . . . . . . . . . . . . . . .2 Multi-dimensional array functions. . . . . . . . . . 135 . . . . . . . . A. . . . . .21. . . A.5 MATLAB/Language. . . . .10 General Demo/Helper functions. . . . . .3 Cell array functions. . . . . . . . . . . . . . . . . . . . . . . . A. . . . . . . . . . . . . . . . .6 MATLAB/ODE Suite. . .23. . . . . . A. . . . . . . . . . . .10 uicontrol . . . A. . . . . . . . . . .22. . . . . . . .4 Timing functions.23. . A. . .21. . . . . . . . . . . . . . . . . . . . . .22 Dynamic data exchange (DDE). . . . . . . . . . .23. . . . B.3 MATLAB/Numerics. . . . . . . . . .3 axes . . . . . . . . . . . . . . . . . .20. . . . . A. . . . . . . . . . . . . . B. . . . . . . A. . . . . . . . . . . . . . . . . . . . . . . . .2 figure . . . . . . . . . . . . . . . . . .4 MATLAB/Visualization. B. . . .4 Structure functions. .1 Current date and time. . . . . . . A. . . . . . . . A. . . . . . . . oggetti . . . . . . . . . . . . . . . . . .11 MATLAB/Helper functions. . . . . 136 . . 138 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .21. . . . . . . . . . . . . A. . . . A. . . . . . . .23. .21. . . . . 125 125 125 126 126 126 126 126 126 127 127 127 127 128 128 128 128 128 129 129 129 130 130 130 130 131 . . . . . . .20. . . . . . . . . . . .1 MATLAB/Introduction. . . . . . . . . 138 . . . . . . . . . . . . . . . . . . . . . . . .21. . A. . . . . . . . . . . . . . . . . . . .1 Data types (classes) .23. . . . . . . . . . . . . . . . . . . . . . . . .1 root . . . . . .7 image . . . . . . . . . . . . . . . . . . . . . . . . . . .23. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 light . . . . . 140 8 Copyright 2003 Roberto Bucher 7 aprile 2003 . . A. . . . . . . . . . . . . . . 131 . .20. 137 . . . . . . . . . . . . . A. . . . . . . . . .23. . .

. . . 58 13. . . . . . . . . . . . . . .4 Comando contour . . . . . . . . . . .1 Interpolazione spline . . . . . . . . . . . . . . . . . . . .10Comando pcolor . . . . . . . . . . . . . . . . . . . . . . . . . 82 17. . . . . 13. . . . . . . . . . . . . . . . . . . . . . . . . . 92 7 aprile 2003 Copyright 2003 Roberto Bucher 9 . . . . . . . . . . . . . 88 18. . . . . . . . . . 13. . . . . . . . . . . .1 Risultato del comando cellplot . . . . . . . . . . . . . . . 13. . 56 12. . . . . . 71 17. . . . .2 Figura di partenza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5 Comando contour3 . . . . . . . . . . . . . . . .1 Gerarchia degli oggetti della GUI . . . 42 Rappresentazione di grafi . . . . . . . . . . . . . . . . . . . . . . . . . . .6 Comando mesh . . . . . . . . .2 Risultato del comando subplot 13. . . . . . . . . . . . . . . .2 Diagramma delle fasi dell’equazione di Van der Pol . . .8 Comando surfl . . . . . .1 Grafico di 2 sin(x) + cos(x) . . .2 Risultato del comando spy . . . . . . . . . . . . . 60 62 64 64 64 65 65 65 65 66 14. . . . . . 70 14. . . . . . . . . . . . . . . . . . . . . . . . .1 Risultato di fplot . . . . . . . . . . . . . . . . . . . . 13.7 Comando meshz . . . . . . . . . . . . . . . . 13. . . . .3 Comando plot3d . . . . . . . . . . . 83 17. . . . . . . . . . 52 11. . . . . . . . . . . . . . . . . . . . . . . . . . . 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 6. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .9 Comando view . . . .3 Risultato finale della manipolazione . . . . . . . . . . . . . . . . . .1 Approssimazione di punti con un polinomio . . 13. . . . . . . .1 Simulazione dell’equazione di Van der Pol . . 42 10. . . .Elenco delle figure 6. . . .

Introduzione a Matlab ELENCO DELLE FIGURE 10 Copyright 2003 Roberto Bucher 7 aprile 2003 .

. . . . . . . . . . . .1 2. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Operazioni di algebra lineare . . 59 60 61 63 63 63 14. . . 18 Accesso al sistema operativo . . . . . . . . . . . . 21 Operazioni con stringhe . .5 13. . . . . . . . .6 Funzioni per grafica 2D . . . . . Operazioni logiche . . . .1 Comandi di IO . . . .2 13. . . . . . . . . . . 14 Operazioni su matrici . . . . . . . .2 Comandi applicabili a celle . . . . . . . . . 24 Funzioni scientifiche . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .Elenco delle tabelle 1.1 Oggetti della GUI . . . . . . . . . . . . .1 Operatori sovrascrivibili . . 74 16. . . . . . . . . . . . . . . . . . . . . . . . 90 18. 32 Operazioni sui numeri complessi . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 18. . .2 5. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 Comandi per integrazione numerica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4 13. . . . . . . . . . . . .3 Comandi su strutture . . . 94 19. . . . . . . . . . . . . .1 4. . . . . . . . . . . . .2 5. . . . . . . . . .3 4. .1 2. . . . Comandi per grafica 2D . . . . . . . Comandi per la vista 3D . . . . . . . 81 18. Trasformazione di coordinate Comandi per grafica 3D . . . . . . . . .1 13. . . . . . . . . . .2 2. . . . . . . . . . . . . 55 12. . . . . . . . . . 58 13.1 Funzioni di interpolazione . . . . Richieste logiche . . . . . . . .1 Funzioni di integrazione e derivazione . . . . . . . . . . . . . . . . . . . . . . . . .1 Operazioni su matrici multidimensionali . . . . . . .3 5. 99 7 aprile 2003 Copyright 2003 Roberto Bucher 11 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 Operazioni relazionali . . . . . . . . . . . . . . . . . . . . . . . . . . 49 11. . . . . . . 69 15. . . . . . . . . . . . . . . .4 9. . . . . . . . . . . . . . . . .3 13. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 36 37 39 Operazioni per l’analisi dei dati . . . . . . . . . . . . . . .1 Alcuni toolbox di Matlab . . . . . . .1 5. . . . . . . . . . . . . . . . . . . . .1 Comandi del debugger . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 17. . . . . . . . . . Formattazione di grafici . . . . . . . . . . . . . . . . . . .

Introduzione a Matlab ELENCO DELLE TABELLE 12 Copyright 2003 Roberto Bucher 7 aprile 2003 .

2 Piattaforme HW Matlab gira su diversi sistemi. Ne esistono moltissimi e ogni mese la lista si arricchisce di nuovi programmi. la controllistica. 1. la statistica e numerosi altri.1 sono riportati alcuni dei toolbox e Add-On a disposizione 7 aprile 2003 Copyright 2003 Roberto Bucher 13 . che permettono la soluzione di problemi mirati a campi particolari dell’ingegneria. la portabilit` a da un sistema all’altro di funzioni specifiche scritte dall’utente ` e garantita praticamente al 100%. 1. grazie alle sue numerose applicazioni in campi quali l’elettronica.1 Origini Matlab ` e uno dei programmi scientifici di maggior diffusione. Alpha). ma ha sviluppato tutta una serie di funzioni per le applicazioni pi` u diverse nel campo scientifico.3 Toolbox I toolbox sono una collezione di programmi e funzioni basate su Matlab. scritta alla University of New Mexico e alla Stanford University quale pacchetto software di supporto alle lezioni di Algebra lineare e Analisi numerica .Capitolo 1 Introduzione 1. Essendo le funzioni scritte nella maggior parte dei casi come file testo . Oggi Matlab non si limita pi` u al solo calcolo matriciale e numerico. fino alle Workstation Unix (Sun. e sono ormai numerose le pubblicazioni scientifiche che utilizzano l’ambiente di Matlab quale sostegno matematico della teoria. la chimica. La primissima versione di Matlab risale alla fine degli anni ’70. l’elaborazione di immagini. La semplicit` a del linguaggio permette di risolvere problemi molto complessi senza dover sviluppare programmi in C o altri linguaggi di programmazione. l’analisi dei segnali. Viene utilizzato in molti corsi universitari e di ingegneria. Nella tabella 1. che vanno dal PC al Mac.

Introduzione a Matlab Capitolo 1. Controller Design Optimization Model Predictive Control Nonlinear Control Design Spline Neural Network Tabella 1. Symbolic Math Communication Autom.1: Alcuni toolbox di Matlab 14 Copyright 2003 Roberto Bucher 7 aprile 2003 . Equation DSP Blockset Statistik Simulink Accelerator Symbolic Math Matab C Math Library Robust Control Fuzzy Logic Wavelet Signal Processing Chemometrics Frequency Domain Ident. Matlab Compiler Ext. Introduzione Simulink Real Time Workshop Matlab C Compiler Control System Financial Image Processing Partial Diff.

2. come potrebbe essere l’ambiente DOS o UNIX.1 Introduzione Matlab ` e un ambiente di lavoro basato principalmente su comandi in linea. complessi. I comandi possono essere digitati direttamente sulla linea di comando o letti da file testo. Qui l’utente potr` a fare tutte le sue richieste e dare i suoi comandi. L’utilizzo di tutte le funzioni risulta semplice e immediato. un contenitore per svariati tipi di dati. Esiste la possibilit` a di scrivere applicazioni con finestre e bottoni. Per il momento ci occuperemo unicamente di matrici bidimensionali. numeri e ’_’. Come potremo vedere. I nomi delle variabili devono iniziare con una lettera e possono contenere lettere. una grossa quantit` a di funzioni sono direttamente leggibili. caratteri o strutture pi` u complesse. come pure di compilare funzioni scritte in un linguaggio tipo C o Fortran.Capitolo 2 Basi 2. si rimanda alla fine di questa documentazione. I nomi di variabili possono contenere fino a 19 caratteri 3. sia che si tratti di funzioni particolari. Per la creazione di variabili occorre tenere presente alcune convenzioni 1. Possiamo digitare direttamente sulla linea di comando le operazioni che vogliamo fare. • La cella. Per la creazione e l’utilzzo di matrici multidimensionali. Una matrice pu` o essere creata in differenti modi 7 aprile 2003 Copyright 2003 Roberto Bucher 15 . essendo programmate in questi script testo con estensione . sia che si tratti operazioni. Quando facciamo partire Matlab otteniamo una finestra contenente una semplice linea di comando. Le variabili sono case-sensitive 2.m .2 Tipi di dati Matlab lavora con alcuni tipi di dati che sono: • La matrice n-dimensionale di numeri reali.

5000 Columns 7 through 11 0. oppure andare a capo. Utilizzando il primo metodo possiamo dichiarare in modo semplice piccole matrici.8000 0.6 7.9] b = 1 2 3 4 5 6 7 8 9 Per matrici di dimensione pi` u grande ` e spesso utile utilizzare alcuni metodi e alcune funzioni messe a disposizione da Matlab.1668 0.1544 5.1.7743 1.4 5 6. 7 8 9] a = 1 2 3 4 5 6 7 8 9 >> b=[1.3 4.8. Per introdurre una nuova riga nella matrice.10) y = Columns 1 through 6 0.0000 >> x=0:0. • Utilizzando matrici create in file .2.0000 >> y=logspace(-1.4:2 x = 0 0. In Matlab non esistono dichiarazioni di tipi o di dimensioni.1000 0. occorre terminare la precedente con un .3000 0. Basi • Digitando esplicitamente tutti gli elementi.1.8000 1.9000 1.2915 Columns 7 through 10 2.2000 1.1000 0.7000 0. o uno spazio.9948 10.m (script).4000 0.4642 0.2783 0.2000 0.6000 0. Matlab alloca direttamente la memoria necessaria ogni volta che si dichiara o si modifica una variabile.4000 0.5.0000 16 Copyright 2003 Roberto Bucher 7 aprile 2003 . >> a=[1 2 3.6000 2.Introduzione a Matlab Capitolo 2. • Caricando le matrici da files esterni. . • Utilizzando funzioni specifiche di Matlab. Tra un valore e l’altro pu` o essere messa una .11) y = Columns 1 through 6 0 0. >> x=1:10 x = 1 2 3 4 5 6 7 8 9 10 >> y=linspace(0.

0000 0.9].7*pi) sqrt(2) 1+2*(4+3)/5] x = 1.2.8. .8090 1. 2.4. I comandi rand e randn creano matrici di numeri casuali di dimensioni n x n o n x m. >> r=[10 11 12].8000 >> x(6)=sin(x(1)) x = 1.3) ans = 1 1 1 1 >> zeros(2.6.2.8090 1.8415 Matlab ha automaticamente adattato le dimensioni della matrice x alla nuova situazione e ha introdotto uno 0 nel valore x(5) non ancora assegnato.8000 Per accedere ad uno o pi` u elementi di una matrice si utilizzano le parentesi ( ).r] A = 1 2 3 4 5 6 7 8 9 10 11 12 7 aprile 2003 Copyright 2003 Roberto Bucher 17 .0000 0.8000 0 0. Indirizzamento di matrici Introduzione a Matlab Altri comandi permettono di creare matrici particolari >> eye(3) ans = 1 0 0 1 0 0 >> ones(2. >> A=[1.3.3.5.4) ans = 0 0 0 0 0 0 1 1 1 0 0 0 0 Quando si creano matrici molto grandi si pu` o eliminare l’output terminando il comando con .7.4142 3.4142 3. >> x(4) ans = 3. >> A=[A.3 Indirizzamento di matrici Gli elementi di una matrice possono essere di qualsiasi tipo >> x=[1 sin(0.

1: Operazioni su matrici Altre funzioni sono descritte nell’allegato A. La riga A(1 : 3.1 flipud(A) fliplr(A) rot90(A) tril triu reshape(A. >> c=a(3:-1:1. Basi Matlab unisce tra di loro matrici e vettori. e le colonne 1 e 2. A deve contenere m*n elementi ! ultimo indice di una matrice crea una matrice con sulla diagonale i valori del vettore v crea un vettore con gli elementi della diagonale della matrice A Tabella 2.[1 2]) c = 7 8 4 5 1 2 2. mentre : significa tutti .m. Si possono estrarre anche pi` u elementi contemporaneamente >> b=A(1:3.:) b = 1 2 4 5 7 8 3 6 9 1 : 3 significa intervallo da 1 a 3 .4 Manipolazione di matrici Altre operazioni speciali su una matrice sono descritte nella tabella 2. Le operazioni per determinare le dimensioni di una matrice sono >> length(a) ans = 3 18 % ritorna il massimo tra righe e colonne Copyright 2003 Roberto Bucher 7 aprile 2003 . :) pu` o essere letta come le righe di A da 1 a 3 e tutte le colonne .n) end diag(v) diag(A) scambia i valori della matrice A dall’alto in basso scambia i valori della matrice A da sinistra a destra ruota la matrice A di 90 gradi in senso antiorario estrae la parte superiore triangolare estrae la parte inferiore triangolare ridimensiona la matrice A a m x n. In quest’ultimo esempio vengono estratte le righe di A da 1 a 3 in ordine inverso.Introduzione a Matlab Capitolo 2.

>> who Your variables are: A b r ans c x >> whos 7 aprile 2003 Copyright 2003 Roberto Bucher 19 . 2. E whos . e non viene quindi valutato dal sistema.5.5 Espressioni Matlab ` e un linguaggio che si basa su espressioni nella forma variabile = espressione o semplicemente espressione >> 100/3 ans = 33.3333 La risposta di un espressione senza assegnamento viene scritta in una variabile di default chiamata ans (answer). In questo caso E gli elementi sono visti come una colonna sotto l’altra a = 1 4 7 >> a(4) ans = 2 2 5 8 3 6 9 2.2. Espressioni Introduzione a Matlab >> size(a) ans = 3 3 >> [r. Da notare inoltre che il simbolo % inizia una parte di commento.6 Informazioni sul Workspace Con gli esempi precedenti sono state create delle variabili che si trovano memorizzate nel ` possibile avere informazioni su queste variabili con i comandi who e em workspace.c]=size(a) r = 3 c = 3 1 2 ` possibile accedere ad un elemento di una matrice con un solo indice.

realmin il numero reale positivo pi` u piccolo utilizzabile 8. inf infinito 5. Basi Name Size Elements Bytes Density A 4 by 3 12 96 Full ans 1 by 1 1 8 Full b 3 by 3 9 72 Full c 2 by 2 4 32 Full r 1 by 3 3 24 Full x 1 by 6 6 48 Full Grand total is 35 elements using 280 bytes Complex No No No No No No Ogni elemento di una matrice reale occupa 8 bytes. E 20 Copyright 2003 Roberto Bucher 7 aprile 2003 . NaN Not-a-Number . realmax il numero reale positivo pi` u grande utilizzabile Interessante ` e la possibilit` a di avere calcoli che danno risultati infiniti o non definiti senza che il sistema si blocchi o dia particolari errori >> 1/0 Warning: Divide by zero ans = Inf >> -1/0 Warning: Divide by zero ans = -Inf >> 0/0 Warning: Divide by zero ans = NaN Mediante il comando clear si possono cancellare tutte le variabili definite o solo alcune di esse >> clear A % elimina la variabile A >> clear % elimina tutte le variabili >> who Your variables are: ` inoltre possibile registrare un’intera sessione di lavoro utilizzando il comando diary .es. 0/0) √ 6. ans nome della variabile di default in uscita 2.point maggiore di 1 nel computer 4. Esistono inoltre alcune variabili predefinite di sistema che sono 1. i e j i = j = −1 7. eps il numero pi` u piccolo che addizionato a 1 crea un numero floating. numero indefinito (p.Introduzione a Matlab Capitolo 2. pi pi greco 3.

m.mat >> save prova e in un futuro >> load Loading from: Matlab.2.m apre il programma edit per modificare il file test.7 Accesso al sistema operativo Dall’interno di Matlab ` e possibile accedere direttamente ad informazioni di sistema. Accesso al sistema operativo Introduzione a Matlab 2.m Cambia la directory di lavoro Come cd <path> Mostra la directory corrente di lavoro Come cd Come cd Mostra tutto il path di un file .m Tipo di computer Apre il Web browser Tabella 2. descritti nella tabella 2.m’) per effettuare la medesima operazione. >> save Saving to: Matlab.8 Salvataggio e richiamo di dati Tutte le variabili definite o calcolate in una sessione di lavoro possono essere salvate e richiamate a piacimento mediante il comando save e load . In ambiente Windows ` e possibile anche utilizzare il comando >> dos(’edit test.7.mat >> load prova 7 aprile 2003 Copyright 2003 Roberto Bucher 21 .2: Accesso al sistema operativo ` inoltre sempre possibile richiamare direttamente un comando del sistema operativo E precedendolo con il simbolo ! Per esempio >> !edit test.2 what dir ls type test delete test cd <path> chdir <path> cd chdir pwd which computer web Lista dei file .m Elimina il file test. 2. mediante alcuni comandi particolari.m nella directory corrente Lista di tutti i file nella directory corrente Analogo a dir Visualizza il file test.

>> matite=5.333333333333334e+001 >> format hex.gomme=3.media media = 13. non viene visualizzato il risultato di questo comando 22 Copyright 2003 Roberto Bucher 7 aprile 2003 .3333 2.3333e+001 >> format long e.33 >> format +.10 Altre caratteristiche di base ` possibile dare pi` E u comandi sulla stessa linea.penne=2 matite = 5 gomme = 3 penne = 2 Se si termina un comando con il carattere .media % formato di default media = 13.media % formato esadecimale media = 402aaaaaaaaaaaab >> format bank.media media = + >> format rat.media media = 13.33333333333334 >> format short e.Introduzione a Matlab Capitolo 2. o .3333 >> format long.9 Formati dei numeri Nel prossimo esempio possiamo vedere l’uso del comando format per la scelta del formato numerico desiderato >> media=40/3 media = 13.media media = 1. Basi 2. .media % formato frazione media = 40/3 >> format short.media media = 1. separandoli con .

Stringhe Introduzione a Matlab >> matite=5. Si possono manipolare facilmente.’nome’) ans = casa cassone nome >> size(ans) ans = 3 7 Matlab utilizza 2 byte per ogni carattere.penne=2. L’uscita da Matlab ` e possibile con il comando quit .c] d = Mi chiamo Roberto Trattandosi di matrici. 2.gomme=3. >> a=’Mi’ a = Mi >> b=’chiamo’ b = chiamo >> c=’Roberto’ c = Roberto >> d=[a.11.’cassone’.11 Stringhe Un testo in Matlab non ` e nient’altro che un vettore di caratteri.b.2.’ ’. >> a=’abc’ a = abc >> whos Name Size Elements Bytes Density a 1 by 3 3 24 Full Grand total is 3 elements using 24 bytes Complex No Le funzioni per la manipolazione di stringhe sono descritte nella tabella 2. non ` e possibile avere un numero diverso di caratteri tra una riga e un’altra della stessa matrice ! Eventualmente occorre utilizzare il comando str2mat che adatta il numero di colonne di una matrice secondo la stringa pi` u lunga. come pure ` e possibile costruire frasi concatenando tra di loro delle matrici. 7 aprile 2003 Copyright 2003 Roberto Bucher 23 . >> str2mat(’casa’.’ ’.3 Altre funzioni sono descritte nell’allegato A.

Introduzione a Matlab Capitolo 2. Basi abs isstr setstr str2mat lower upper strcmp int2str num2str sprintf str2num sscanf dec2hex hex2dec hex2num base2dec dec2base Converte una stringa nel corrispondente valore numerico vero se la variabile ` e una stringa converte valore numerico in stringa Crea una matrice testo converte in minuscole converte in maiuscole confronta 2 stringhe converte intero in stringa converte numero in stringa converte numero in stringa (come C) converte stringa in numero converte stringa in numero (come C) conversione decimale-esadecimale conversione esadecimale-decimale conversione esadecimale a floating point conversione da base B a decimale conversione da decimale a base B Tabella 2.3: Operazioni con stringhe 24 Copyright 2003 Roberto Bucher 7 aprile 2003 .

nonlinear numerical methods. Function functions . DET(X) is the determinant of the square matrix X. La chiamata semplicemente di help mostra una lista degli argomenti disponibili. E >> help det DET Determinant. Low-level file I/O functions. General purpose commands. Elementary matrices and matrix manipulation. Color control and lighting model functions. Copyright 2003 Roberto Bucher 25 7 aprile 2003 .1 Introduzione Matlab contiene un sistema di help in linea che fornisce numerose informazioni sull’uso di tutte le funzioni. >> help HELP topics: toolbox\local matlab\datafun matlab\elfun matlab\elmat matlab\funfun matlab\general matlab\color matlab\graphics matlab\iofun matlab\lang matlab\matfun Local function library. General purpose graphics functions. Data analysis and Fourier transform functions.Capitolo 3 L’Help in linea 3. Elementary math functions.2 Il comando help ` sufficiente chiamare il comando help seguito dalla funzione desiderata.numerical linear algebra. Language constructs and debugging. I comandi help e lookfor permettono una ricerca veloce di informazioni. 3. Matrix functions . che possono poi in seguito essere approfonditi.

Plot function. polar . fill .Comet-like trajectory. Two dimensional graphics. Sound processing functions. Specialized math functions. hist . stairs . Nonlinear Control Design Toolbox.Semi-log scale plot. >> help plotxy Two dimensional graphics.Draw filled 2-D polygons. L’Help in linea matlab\ops matlab\plotxy matlab\plotxyz matlab\polyfun matlab\sounds matlab \sparfun matlab\specfun matlab\specmat matlab\strfun matlab\dde matlab\demos - simulink\simulinksimulink\simdemossimulink\blocks simulink\sb2sl toolbox\control toolbox\ncd - Operators and special characters. loglog . Specialized matrices.Histogram plot.Discrete sequence or "stem" plot. comet .Introduzione a Matlab Capitolo 3. bar . plot . Control System Toolbox. semilogy .Semi-log scale plot.Compass plot. Simulinkblock library. errorbar . DDE Toolbox. compass . The Matlab-Expo and other demonstrations.Angle histogram plot. SystemBuild 3. stem . Character string functions.Error bar plot.Linear plot. 26 Copyright 2003 Roberto Bucher 7 aprile 2003 . Simulink demonstrations and samples.Stairstep plot. Sparse matrix functions. type "help topic". For more help on directory/topic. Three dimensional graphics. Specialized X-Y graphs. Polynomial and interpolation functions.Log-log scale plot.Bar graph.0 model import into Simulink.Polar coordinate plot. Elementary X-Y graphs. feather . fplot . Simulink model analysis and construction functions.Feather plot. rose . semilogx .

7 aprile 2003 Copyright 2003 Roberto Bucher 27 . 3. title xlabel ylabel text gtext grid - Graph title. CLEAR Clear various quantities from the workspace. DBCLEAR Remove an M-file breakpoint set by the DBSTOP command. >> lookfor clear CLC Clear command window.3. Text annotation. CLG Clear Figure (graph window). Il comando lookfor Introduzione a Matlab Graph annotation. Mouse placement of text.3. CLF Clear Figure. X-axis label. Grid lines. e rimanda una lista di tutti i comandi trovati. Y-axis label.3 Il comando lookfor Questo comando cerca una stringa particolare all’interno della prima riga dell’help di un certo comando. GRAPHICS. CLA Clear axis. See also PLOTXYZ.

L’Help in linea 28 Copyright 2003 Roberto Bucher 7 aprile 2003 .Introduzione a Matlab Capitolo 3.

2 Funzioni matematiche La chiamata di una funzione in Matlab ` e molto semplice.3 + 4 ∗ cos(x) ∗ sin(x) per alcuni valori di x.1:1)*pi.3026 Le funzioni matematiche elementari sono elencate nella tabella 4.pi/2. >> x=log(10) x = 2.0000 0.7) x = 7 aprile 2003 Copyright 2003 Roberto Bucher 29 . >> x=(0:0.0000 1.8090 0.9511 Columns 8 through 11 0.3090 0. Tutte le funzioni sono applicabile a scalari e a matrici.1 Introduzione Matlab mette a disposizione una quantit` a di funzioni scientifiche per l’utilizzo in matematica e ingegneria.Capitolo 4 Calcolo scientifico 4. Inoltre ` e gi` a implementato tutto il calcolo con i numeri complessi.5878 0. Il primo metodo consiste nel calcolo diretto della funzione >> x=linspace(-pi/2. Vediamo ora i metodi messi a disposizione da Matlab per calcolare i risultati di una funzione come ad esempio y = 0. 4.8090 0.1 Altre funzioni sono descritte nell’allegato A.9511 La funzione viene applicata ad ogni elemento della matrice x.3090 0.5878 0. >> y=sin(x) y = Columns 1 through 7 0 0.

*sin(x. Un’altro metodo consiste nel definire in forma testuale la funzione e di applicare in seguito il comando eval .0000 +23.3000 1.0793 1.0000i >> c1+c2 ans = 8.0000i 30 Copyright 2003 Roberto Bucher 7 aprile 2003 .0793 0.2379 2.0000 +14.3+4*cos(x).5708 >> y=0.3000 1.*sin(x.0000i L’utilizzo del segno * ` e facoltativo.0000 + 7.2379 2.0000 + 7. La parte complessa di un numero viene indicata aggiungendo la lettera i al secondo elemento.5236 0 0.3000 2.3+4*cos(x).*x) y = 0.0793 0.Introduzione a Matlab Capitolo 4. >> c1=4+7i c1 = 4. >> f=’0. esattamente come nella matematica tradizionale.3000 4.*x)’ f = 0.5236 1..0000 +14. Le operazioni si svolgono in modo tradizionale >> c1+c2 ans = 8.2379 0.2379 0.0793 1.0000i >> c2=4+7*i c2 = 4.3000 2. Le operazioni vengono svolte esattamente nello stesso modo di quelle con numeri reali.0472 1. come pure la scelta tra i e j .3 Numeri complessi Matlab lavora senza problemi e senza accorgimenti particolari anche con numeri complessi.0472 -0.*x) >> eval(y) ans = 0. Calcolo scientifico -1.*sin(x.3000 Attenzione all’uso del comando .5708 -1.0000 + 7.3+4*cos(x).0000i >> c3=4+7j c3 = 4.0000i >> (4+7i)*(5-3i) ans = 41.

0000i Le operazioni tradizionali sui numeri complessi sono riportate nella tabella 4.2 Altre funzioni sono descritte nell’allegato A. Numeri complessi Introduzione a Matlab >> (4+7i)/(3+2i) ans = + 1.4. 7 aprile 2003 Copyright 2003 Roberto Bucher 31 .3.

Calcolo scientifico abs(x) acos(x) acosh(x) angle(x) asin asinh atan(x) atan2(x.Introduzione a Matlab Capitolo 4.y) round(x) sign(x) sin(x) sinh(x) sqrt(x) tan(x) tanh(x) valore assoluto o modulo di x arc cos di x arc cos iperbolico di x angolo di un numero complesso arc sin di x arc sin iperbolico di x arc tan di x arc tan su 4 quadranti arc tan iperbolica arrotondamento verso + ∞ complesso coniugato di x coseno cos iperbolico esponente e arrotondamento verso 0 arrotondamento verso .y) atanh ceil conj(x) cos(x) cosh(x) exp(x) fix(x) floor(x) gcd(x.−∞ massimo comun divisore parte immaginaria di x complesso minimo comune multiplo (least common multiple) logaritmo naturale di x logaritmo base 2 logaritmo base 10 di x divisione intera parte reale di x complesso resto di x/y arrotondamento verso il numero intero pi` u vicino segno di x (+.2: Operazioni sui numeri complessi 32 Copyright 2003 Roberto Bucher 7 aprile 2003 . 0) sin di x sin iperbolico di x radice quadrata di x tan di x tan iperbolica di x Tabella 4. -.y) imag(x) lcm log(x) log2(x) log10(x) mod real(x) rem(x.1: Funzioni scientifiche abs angle conj real imag modulo di un numero complesso fase di un numero complesso numero complesso coniugato parte reale parte immaginaria Tabella 4.

5.2 Matematica tra matrici ` possibile definire operazioni tra gli elementi di due matrici solo nel caso che le due E matrici abbiano la stessa lunghezza.*b ans = 1 6 >> a.1 Matematica tra scalari e matrici In Matlab si possono effettuare direttamente operazioni tra matrici e scalari >> a a = 1 >> 2*a-1 ans = 1 2 3 4 5 3 5 7 9 In questo caso la matrice a ` e stata moltiplicata per 2 e ad ogni elemento ` e stato sottratto 1./b 7 aprile 2003 3 4 5 5 7 9 8 11 14 -2 -3 -4 15 28 45 Copyright 2003 Roberto Bucher 33 .Capitolo 5 Operazioni con matrici 5. >> a a = 1 2 >> b b = 1 3 >> a+b ans = 2 5 >> a-b ans = 0 -1 >> a.

Introduzione a Matlab Capitolo 5..6667 0.^2 ans = 1 4 0.*. . anche tra matrici.6000 0. In Matlab sono anche definite le due operazioni cross e dot per il prodotto vettoriale e per il prodotto scalare tra vettori. >> a=1:5 a = 1 2 >> b=a’ b = 1 2 3 4 5 3 4 5 L’operazione funziona anche nel modo inverso >> c=b’ c = 1 34 2 3 4 5 7 aprile 2003 Copyright 2003 Roberto Bucher .^b ans = 1 >> 2. mentre per passare alla riga successiva si utilizza un .5556 8 243 16384 1953125 8 16 32 9 16 25 Sono particolarmente da notare le ultime operazioni (./. Operazioni con matrici ans = 1. Possiamo anche trasporre una matrice riga con l’operatore ’ .^a ans = 2 4 >> a.5714 0.^) che sono definite come operazioni . Il tentativo di eseguire una normale moltiplicazione tra le due matrici a e b porta ad un errore : >> a*b ??? Error using ==> * Inner matrix dimensions must agree. . 5. per arrivare ad ottenere un vettore colonna.0000 >> a. queste operazioni sono normalmente definite in un modo differente (vedi capitolo dedicato all’algebra lineare).3 Orientazione delle matrici Abbiamo visto precedentemente che i valori di una riga di una matrice vengono separati tra di loro con una . . Tutte queste operazioni sono svolte elemento per elemento.. poich´ e.

Operatori relazionali e logiche Introduzione a Matlab Esiste anche l’operatore .4.1: Operazioni relazionali L’utilizzo di questi operatori d` a come risultato un valore 0 o 1 >> 3+5~=8 ans = 0 Questi operatori possono essere applicati anche a matrici >> a=magic(6) a = 7 aprile 2003 Copyright 2003 Roberto Bucher 35 .0000 + 2.0000 + 1.0000i 5.0000i 2.0000 + 3.3.0000i 3.’ .1.0000i 5.0000i 5.0000 + 4.0000 .0000i >> e=d’ % matrice trasposta coniugata e = 1.0000 + 2.0000i 4.0000 + 5.4.’ % matrice trasposta f = 1.0000 + 3. La differenza esiste unicamente quando viene trasposta una matrice di elementi complessi.4 5.0000i 4.1 > < >= <= == ~= maggiore minore maggiore o uguale minore o uguale uguale diverso (not uguale) Tabella 5.0000i 2.0000 + 1.5.0000 + 4. >> d=a+i*a d = Columns 1 through 3 1.4.0000 + 5.2.0000 .0000i 2.1 Operatori relazionali e logiche Operatori relazionali Gli operatori relazionali definiti in Matlab sono descritti nella tabell 5.0000 .5.0000i Column 4 through 5 4.0000i 5.0000 .0000 .0000i >> f=d.0000i 3.0000i 3.

>> find(rem(a.2: Operazioni logiche L’operazione A & B d` a come risultato una matrice di dimensioni uguale a quelle di A e B . Operazioni con matrici 35 3 31 8 30 4 1 32 9 28 5 36 6 7 2 33 34 29 26 21 22 17 12 13 19 23 27 10 14 18 24 25 20 15 16 11 L’operazione magic crea una matrice che contiene tutti i numeri interi da 1 a n 2 con somma delle righe e delle colonne costante. Questa matrice ha la particolarit` a che ogni terza diagonale contiene solo multipli di 3.3)==0) p = 0 0 1 1 0 0 0 1 0 0 0 1 1 0 0 0 1 0 0 1 0 0 1 0 0 0 1 0 0 1 1 0 0 1 0 0 Possiamo anche utilizzare il comando find per determinare gli elementi di una matrice che soddisfano determinate condizioni >> a=1:36.2 & | ~ xor And Or Not XOR Tabella 5. con 1 dove gli ` possibile utilizzare le operazioni elementi di entrambe sono diversi da 0.2 Operatori logici 21 24 27 30 33 36 Gli operatori logici definiti in Matlab sono riportati nella tabella 5.3)==0) ans = 3 6 9 12 15 18 5.Introduzione a Matlab Capitolo 5. altrimenti 0. Possiamo visualizzare questa caratteristica sfruttando un operatore relazionale >> p=(rem(a.4. E any e all per confrontare completamente una matrice o un vettore >> a=0:8 a = 36 Copyright 2003 Roberto Bucher 7 aprile 2003 .

8.3: Richieste logiche 5.5. La soluzione tramite Matlab di questa equazione pu` o avvenire in due modi.36] b = 7 aprile 2003 Copyright 2003 Roberto Bucher 37 (5.7. Esistono quindi una grande quantit` a di funzioni in questo campo della matematica.3 exist find finite isempty isieee isinf isnan issparse isstr controlla se esiste una variabile o funzione cerca una certa condizione vera in un vettore controlla se un numero ` e finito controlla se una matrice ` e vuota controlla se il computer usa matematica IEEE controlla se un numero ` e infinito controlla se un numero non esiste controlla se una matrice ` e sparsa controlla se un vettore rappresenta una stringa Tabella 5. x e b due vettori colonna di n elementi.4.5 Algebra lineare Matlab era stato scritto originariamente per semplificare il lavoro degli studenti in algebra lineare. sapendo che x = A−1 b >> a=[1.6.2) .1) dove A ` e una matrice n x n.2.3.5.5.0] a = 1 2 3 4 5 6 7 8 0 >> b=[12.33. Un sistema lineare di equazioni pu` o essere scritto in forma matriciale nel modo seguente Ax = b (5. Algebra lineare Introduzione a Matlab 0 1 2 >> all(a==0) ans = 0 >> any(a==0) ans = 1 3 4 5 6 7 8 Altri operatori sono riportati nella tabella 5. Il primo metodo utilizza l’inversa della matrice per risolvere il problema.

0000 Il secondo metodo utilizza l’operazione definita come divisione sinistra >> a=[1.36] b = 12 33 36 >> x=a\b x = 4.0000 1.4 38 Copyright 2003 Roberto Bucher 7 aprile 2003 .0000 1.3.Introduzione a Matlab Capitolo 5.4. Operazioni con matrici 12 33 36 >> x=inv(a)*b x = 4.6.33. tra cui quelle riportate nella tabella 5.0000 Attenzione : L’operazione x/A non ` e possibile ! In Matlab troviamo tutta una serie di altre operazioni specifiche di algebra lineare.0000 2.0000 2.7.5.0] a = 1 2 3 4 5 6 7 8 0 >> b=[12.2.8.

A) Calcola gli autovalori della matrice A Autovalori e autovettori della matrice A Fattorizzazione LU della matrice A Fattorizzazione QR della matrice A Scomposizione in valori singolari della matrice A rango della matrice A numero condizionale della matrice A calcola la norma di A.D]=eig(A) [L.5.S. Supporta 1-norm.R]=qr(A) [U.4: Operazioni di algebra lineare 7 aprile 2003 Copyright 2003 Roberto Bucher 39 .5.V]=svd(A) r=rank(A) cond(A) norm(A) poly(A) polyvalm(v. Algebra lineare Introduzione a Matlab d=eig(A) [V. 2-norm.U]=lu(A) [Q. F-norm e ∞-norm Trova il polinomio caratteristico associato alla matrice A Calcola il polinomio v della matrice A Tabella 5.

Introduzione a Matlab Capitolo 5. Operazioni con matrici 40 Copyright 2003 Roberto Bucher 7 aprile 2003 .

3) 4 (1.4) 5 >> whos Name Size Bytes Class A S 4x4 4x4 128 80 double array sparse array ` sempre possibile ricostruire la matrice completa con il comando full .2) 2 (3.Capitolo 6 Matrici sparse Le matrici sparse sono una classe particolare di matrici che contengono un numero rilevante di valori nulli.[1 2 3 4 5].3) 4 (1. >> S=sparse([3 2 3 4 1].1) 1 (2.j vettori di indici occupati.n a indicare le dimensioni complete della matrice. E Una matrice sparsa pu` o essere anche creata direttamente con il comando sparse(i. e la coppia m.m.[1 2 2 3 4]. >> A=[0 0 0 5.4.n) .1) 1 (2.2) 3 (4.s.1 3 0 0. al fine di occupare meno memoria.0 0 4 0] A = 0 0 0 5 0 2 0 0 1 3 0 0 0 0 4 0 >> S=sparse(A) S = (3. Matlab permette di memorizzare queste matrici tenendo conto unicamente degli indici occupati.0 2 0 0.4) 5 7 aprile 2003 Copyright 2003 Roberto Bucher 41 .4) S = (3.j. con i.2) 3 (4.2) 2 (3. s contenente i valori.

2 −0.4 0.2 0.6 −0.2 >> [b.6 0. sfruttando per` o in molti casi algoritmi specifici.6 −0. \\ >> gplot(b.8 0.2 0 −0.1: Risultato del comando spy Le applicazioni interessanti delle matrici sparse sono quelle legate agli alberi e ai grafi.2 0 0.Introduzione a Matlab Capitolo 6.8 −1 −1 −0.4 0.6 0.v) 1 0.2: Rappresentazione di grafi 42 Copyright 2003 Roberto Bucher 7 aprile 2003 .v]=bucky.8 1 Figura 6. Matrici sparse Le operazioni sulle matrici sparse possono essere degli stessi tipi di quelle sulle matrici normali. Un esempio ` e riportato nella figura 6. >> spy(S) 0 50 100 150 200 250 300 350 400 0 50 100 150 200 250 nz = 4941 300 350 400 Figura 6. ` E possibile vedere graficamente l’occupazione di una matrice sparsa mediante il comando spy (figura 6.1).8 −0.4 −0.4 −0.

m e poi richiamarlo a piacere.m a=[1.exe o textedit) posso creare questo file testo. 7 aprile 2003 Copyright 2003 Roberto Bucher 43 .3.Capitolo 7 Semplici script Tutte le operazioni che vengono date al prompt dei comandi nell’ambiente di Matlab possono essere integrati in un file testo che pu` o essere richiamato ed eseguito dall’interno dell’ambiente.m .7] c=a*b Posso ora eseguire questo semplice script all’interno di Matlab >> esempio a = 1 2 3 4 b = 5 7 c = 19 43 Tutte le variabili definite all’interno di uno script restano visibili anche dalla linea di comando. esempio notepad.4] b=[5 . Con un qualsiasi editor (p. salvarlo con l’estensione . Matlab riconosce questi file esattamente come un sistema operativo riconosce i suoi files batch. All’interno di uno script posso utilizzare il comando pause per far attendere il programma fino a quando non viene premuto un tasto. Questi programmi.2 . devono avere l’estensione . Posso salvare questi comandi come file esempio. chiamati script.

Semplici script 44 Copyright 2003 Roberto Bucher 7 aprile 2003 .Introduzione a Matlab Capitolo 7.

` anche possibile non avere alcun output. Dalla versione 5 ` E e possibile scrivere pi` u funzioni nello stesso M-file.. e questo codice resta in memoria fino alla fine della sessione o fino ad un comando di clear . Nello stesso modo ` e possibile costruire delle nuove funzioni che possono poi essere richiamate a piacere. % 7 aprile 2003 Copyright 2003 Roberto Bucher 45 .0 le funzioni possono essere precompilate e salvate in questo formato tramite il comando pcode . Il nome del file dove ` e memorizzata la funzione ` e anche il nome della funzione. lentezza dovuta alla compilazione del codice. mentre tutte le altre sono solo accessibili alla funzione principale (funzioni locali).1 Programmi e funzioni Abbiamo visto precedentemente come sia possibile costruire degli script contenenti le varie righe di comando da eseguire in Matlab. Purtroppo. N) generates N points between x1 and x2. x2.. ma non ` e rilevante. Tutte queste funzioni vanno salvate in file teminanti con l’estensione .) Nel caso di una sola variabile di output si pu` o evitare di mettere le [ ].. d2. x2) generates a row vector of 100 linearly % equally spaced points between x1 and x2. Dalla versione 5. Questo ` e il motivo per cui la prima esecuzione di un comando risulta normalmente pi` u lenta. Una funzione viene descritta inizialmente dalla sua definizione nel modo seguente [output1. La dichiarazione interna dovrebbe accordarsi al nome dato. % LINSPACE(x1.output2. ma per chi ` da un sistema all’altro. sono files di testo e quindi sono pure portabili ` possibile anche creare funzioni compilate in C. Vediamo subito un esempio di funzione function y = linspace(d1. con le funzioni precompilate.input2.. In questo caso per` o solo la prima funzione pu` o essere chiamata dall’esterno.m . n) %LINSPACE Linearly spaced vector.. Le funzioni vengono caricate e precompilate. E e interessato a queste possibilit` a rimando ai manuali specifici di Matlab. questo evita il tempo di attesa alla prima esecuzione del comando.]=funzione(input1. % LINSPACE(x1. si perde la possibilit` a di accedere all’help interno alla funzione.Capitolo 8 Programmi e controllo di flusso 8..

2 Controllo di flusso Esistono 3 metodi per controllare il flusso di un programma e prendere decisioni all’interno dello stesso: • for loop • while loop • if-elseif-else • switch-case-otherwise Tutti questi comandi devono avere alla fine del blocco da eseguire un comando end . Programmi e controllo di flusso % % See also LOGSPACE. Esiste la possibilit` a di utilizzare un comando break all’interno di questi cicli.Introduzione a Matlab Capitolo 8. Inc. 46 Copyright 2003 Roberto Bucher 7 aprile 2003 . Copyright (c) 1984-94 by The MathWorks. I parametri definiti all’interno di una funzione sono locali. Quando su una linea viene dato un comando nome l’ordine di esecuzione ` e il seguente : • Variabile nome • Funzione interna di Matlab • Funzione o script nel path attuale • Funzione o script nel path definito in matlabrc. end y = [d1+(0:n-2)*(d2-d1)/(n-1) d2]. I commenti che iniziano alla seconda linea della funzione vengono interpretati da Matlab come linea di help e mostrati quando si richiede sulla linea di comando >> help linspace Molto importante ` e anche il capire come Matlab interpreta una linea di comando. e quindi non vengono passati al em workspace. Se si vogliono utilizzare variabili definite nel em workspace si deve passare tramite la definizione global . if nargin == 2 n = 100. E il numero di parametri passati in entrata e permette cos` ı di distinguere i vari casi. ` interessante come la stessa funzione possa essere richiamata passando in entrata 2 o 3 E ` possibile distinguere i due casi mediante ilo parametro nargin che fornisce parametri.m 8. Questi comandi possono anche essere utilizzati all’interno del shell di Matlab e attendono il comando end per far partire l’esecuzione. :.

end 8.1 :5 y(n)=3*n^2 end 8. while (1+EPS)>1) EPS=EPS/2 .8.3} y=2*a.3 Ciclo if-elseif-else if a>5 b=7 elseif a>4 b=2. case {4.1 Ciclo for for n=1 :0.5. otherwise y=a.2.4 Ciclo switch-case switch a case {1.6} y=3*a case {7.2 Ciclo while num=0 .2. num=num+1 . end 7 aprile 2003 Copyright 2003 Roberto Bucher 47 .2. Controllo di flusso Introduzione a Matlab 8.9} y=4*a.7 elseif a>2 b=1 else b=0 end 8.8.EPS=1 .2.2.2.

Introduzione a Matlab Capitolo 8. Programmi e controllo di flusso 48 Copyright 2003 Roberto Bucher 7 aprile 2003 .

Capitolo 9 Analisi di dati 9.1 Esempi 10 3 4 60 13 >> a = 21 2 15 3 7 >> max(a) ans = 21 >> mean(a) 7 aprile 2003 60 Copyright 2003 Roberto Bucher 49 .1 max min mean median std sort sum prod cumsum cumprod diff hist corrcoef cov valore massimo valore minimo valore medio valore mediano deviazione standard sorting somma elementi prodotto elementi somma cumulativa prodotto cumulativo derivata approssimativa istogramma coefficienti di correlazione matrice di covarianza Tabella 9.1: Operazioni per l’analisi dei dati 9.1 Introduzione Matlab permette di analizzare statisticamente matrici di dati colonna per colonna Le operazioni possibili sono riportate nella tabella 9.0.1.

Introduzione a Matlab Capitolo 9.6000 18.0000 >> median(a) ans = 7 10 >> prod(a) ans = 13230 93600 >> cumprod(a) ans = 21 10 42 30 630 120 1890 7200 13230 93600 50 Copyright 2003 Roberto Bucher 7 aprile 2003 . Analisi di dati ans = 9.

1) 5 Sui polinomi possono essere fatte una grande quantit` a di operazioni >> p2=poly([0 1]) % polinomio creato mediante i poli p2 = 1 -1 0 >> p3=[1 3 2] p3 = 1 3 2 >> roots(p3) % radici di un polinomio ans = -2 -1 Un polinomio pu` o essere derivato >> p1 p1 = 1 2 >> polyder(p1) ans = 3 4 7 5 7 La moltiplicazione tra 2 polinomi ` e un’operazione di convoluzione 7 aprile 2003 Copyright 2003 Roberto Bucher 51 . il polinomio x3 + 2x2 + 7x + 5 viene rappresentato mediante il vettore p1 >> p1=[1 2 7 5] p1 = 1 2 7 (10.Capitolo 10 Polinomi Un polinomio in Matlab viene rappresentato mediante un vettore contenente i suoi coefficienti. Per esempio.

7 0.11. >> p=polyfit(x.’o’.9 1 Figura 10.9.y.1293 >> x1=0:0.16.0317 In quest’ultimo esempio ` e stato determinato il polinomio di 2. Molto interessanti sono le operazioni messe a disposizione per determinare il polinomio che pi` u approssima una serie di punti >> x=0:0.3.y.y1) Nel grafico 10.1.7.48.3 0.6.x1.56.1:1. >> y1=polyval(p.4 0.0317 10 8 6 4 2 0 −2 0 0.34.x1). >> polyfit(x.8108 20. ordine che meglio approssima i punti y.08. Vediamo un altro esempio di operazioni di questo tipo.9.28.1 si pu` o giudicare visivamente il risultato 12 -0.978. >> y=[-.y. Polinomi >> conv(p1.2].7.01:1.2 0.66.p2) ans = 1 1 5 -2 -5 0 Esiste anche la possibilit` a di dividere tra di loro due polinomi utilizzando la funzione deconv .1: Approssimazione di punti con un polinomio 52 Copyright 2003 Roberto Bucher 7 aprile 2003 .7.2) p = -9.447.8 0.8108 20.9. >> plot(x.1 0.3.5 0.2) ans = -9.6 0.1293 -0.Introduzione a Matlab Capitolo 10.

k]=residue(num.0000 -3. Un altro comando interessante ` e il comando residue che effettua una scomposizione in termini di frazioni parziali della divisione di due polinomi >> num=[1 1] num = 1 1 >> den=[1 10 31 30 0] den = 1 10 31 30 >> printsys(num.0000 0 k = [] Il risultato trovato deve essere visto nella forma 0.2) 0 7 aprile 2003 Copyright 2003 Roberto Bucher 53 .1667 0.1333 -0.0333 p = -5.0333 − + + s+5 s+3 s+2 s (10.den) r = 0.1667 0.3333 0.1333 0.3333 0.den) num/den = s + 1 ---------------------------s^4 + 10 s^3 + 31 s^2 + 30 s >> [r.Introduzione a Matlab Il comando polyval determina il risultato dell’applicazione del polinomio a un vettore di punti x1 .p.0000 -2.

Polinomi 54 Copyright 2003 Roberto Bucher 7 aprile 2003 .Introduzione a Matlab Capitolo 10.

10.10.temperature.10.Capitolo 11 Interpolazione Matlab mette a disposizione una serie di comandi per effettuare delle interpolazioni su dati tabellati.5000 >> interp1(orario. interp interp2 interp3 interpn interpft spline griddata interpolazione su funzioni a 1 variabile interpolazione su funzioni a 2 variabili interpolazione su funzioni a 3 variabili interpolazione su funzioni a n variabili interpolazione con funzioni a 1 variabile con metodo FFT interpolazione con metodo spline interpolazione su funzioni a 2 variabili Tabella 11.temperature.1 mostra il risultato di un’interpolazione mediante spline 7 aprile 2003 Copyright 2003 Roberto Bucher 55 . visibili nella tabella 11.25.25) ans = 25.25.0083 La figura 11.’cubic’) ans = 25.temperature.’spline’) ans = 26.1: Funzioni di interpolazione Esistono all’interno dei comandi possibilit` a di scelta del metodo di interpolazione da utilizzare.6875 >> interp1(orario. >> orario=1:12. >> temperature=[5 8 9 15 25 29 31 30 22 25 27 24] temperature = 5 8 9 15 25 29 31 30 22 25 27 24 >> interp1(orario.1.

t1=interp1(orario.temperature.t2.1: Interpolazione spline I comandi che hanno portato a questo risultato sono >> >> >> >> h=1:0.temperature.’-’.’spline’).1:12.h.h. Interpolazione 30 25 20 15 10 5 0 2 4 6 8 10 12 Figura 11.Introduzione a Matlab 35 Capitolo 11.’o’. plot(orario.h.t1.temperature.h). t2=interp1(orario.’--’) 56 Copyright 2003 Roberto Bucher 7 aprile 2003 .

m function y=sinxsux(x) if x==0 y=1.1 12.5) ans = 3.[-10./x.1) . end Vediamo ora cosa abbiamo a disposizione in Matlab per analizzare questa funzione.Capitolo 12 Analisi numerica 12.1 Premessa Definiamo la funzione seguente sinxsux.9270 7 aprile 2003 Copyright 2003 Roberto Bucher 57 (12.3 Ricerca di minimi Cerchiamo ad esempio il minimo della funzione 2e−x sin(x) Possiamo farlo anche scrivendo la funzione in forma testo >> fn=’2*exp(-x)*sin(x)’ fn = 2*exp(-x)*sin(x) >> fmin(fn.10]) >> grid Il risultato ` e visibile nella figura 12. else y=sin(x).2 Plotting Possiamo ottenere velocemente il grafico di questa funzione con >> fplot(’sinxsux’.2. 12.

2.6000 12.2 −0. e quindi effettuare la ricerca in questi intervalli.5 Integrazione e derivazione Esistono diverse funzioni per effettuare l’integrazione di una funzione.4 −10 −8 −6 −4 −2 0 2 4 6 8 10 Figura 12. leggibili dal grafico.6 0. utilizzando la funzione diff . La ricerca viene fatta con la funzione fzero .4) ans = 3.1. >> fzero(’sinxsux’.1: Funzioni di integrazione e derivazione Per derivare una funzione occorre utilizzare metodi pi` u complessi. Occorre innanzitutto determinare degli intervalli. quad8 Integrazione con approssimazione trapezoidale Integrazione con quadratura Tabella 12. 58 Copyright 2003 Roberto Bucher 7 aprile 2003 . oppure cercando un’approssimazione polinomiale e utilizzando il comando polyder . tra il valore 2 e il valore 4 c’` e uno zero della funzione.Introduzione a Matlab 1 Capitolo 12.4 0. Alcune di esse sono riportate nella tabella 12.2 0 −0.4 Ricerca di zeri Per la funzione sinxsux vista precedentemente vogliamo cercare i punti in cui il grafico taglia l’asse x = 0.8 0.1: Risultato di fplot 12. trapz quad. Analisi numerica 0. Come si pu` o ad esempio vedere nel grafico.

1 Introduzione In Matlab ` e possibile utilizzare comandi per grafica 2D e 3D.y1.x.’sin(x)’) Copyright 2003 Roberto Bucher 59 7 aprile 2003 .2*pi).’-’. y1=sin(x).y1(5). 13. y2=2*sin(x)+cos(x).1: Funzioni per grafica 2D La sequenza di comandi seguente crea un grafico con due funzioni sin(x) e 2 sin(x) + cos(x) >> >> >> >> >> >> >> >> >> x=linspace(0. Esistono inoltre comandi per creare delle animazioni.Capitolo 13 Grafica 13.’:’) grid xlabel(’Asse x’) ylabel(’Asse y’) title(’Grafico delle 2 funzioni’) text(x(5).1 plot loglog semilogx semilogy title xlabel ylabel text gtext grid Crea un grafico da vettori di valori Grafico con assi logaritmici Grafico con asse x logaritmico e y lineare Grafico con asse x lineare e y logaritmico Aggiunge un titolo al grafico Label asse x Label asse y Mostra un testo ad una posizione generica Mostra un testo ad una posizione acquisita con il mouse Mostra (toglie) la griglia Tabella 13.y2.2 Grafica 2D Le funzioni principali per gestire grafici 2D sono riportate nella tabella 13. plot(x.

X2.5 2sin(x)+cos(x) Grafico delle 2 funzioni 0 1 2 3 Asse x 4 5 6 7 Figura 13..2: Formattazione di grafici Nel prossimo script tutti i comandi di plot creano lo stesso grafico. Il comando plot permette una grande variazione di possibilit` a.5 −2 −2.y1.x. Grafica >> text(x(30). o x + * : -.2.[y1. Il formato resta per` o plot(X1.5 1 0.5 −1 −1.S1.5 2 1.Introduzione a Matlab Capitolo 13.’2sin(x)+cos(x)’) Il grafico ottenuto con i comandi precedenti ` e mostrato nella figura 13.y2(30). – Stile linea punto cerchio croce segno + stella linea continua linea punteggiata Linea-punto linea tratteggiata Tabella 13.Y2.y2).) dove X ` e il vettore delle ordinate.y2]) 60 Copyright 2003 Roberto Bucher 7 aprile 2003 .Y1.5 Asse y sin(x) 0 −0. >> plot(x..S2. Simbolo y m c r g b w k Colore giallo magenta ciano rosso verde blu bianco nero Simbolo .1 2. Y il vettore (o anche la matrice !) delle ascisse.. S un formato simbolico con il significato descritto nella tabella 13. >> plot(x.1: Grafico di 2 sin(x) + cos(x) Si pu` o aggiungere una legenda mediante il comando legend .

13.3. Il comando subplot

Introduzione a Matlab

Matlab riscrive sempre lo stesso grafico, sostituendo quello vecchio con quello nuovo. ` possibile mettere due grafici sulla stessa finestra con due comandi distinti utilizzando E il comando hold on . I prossimi comandi costruiscono ancora lo stesso grafico dell’esempio precedente >> >> >> >> plot(x,y1) hold on plot(x,y2) hold off

Per creare un nuovo grafico senza perdere quello precedente ` e possibile farlo disegnare in una nuova finestra creata mediante il comando figure . Altri comandi utilizzabili per ottenere grafici 2D sono riportati nella tabella 13.3. Il axis bar colorbar compass errorbar feather possibilit` a di settare parametri degli assi grafico a barre grafico a barre grafico vettori di numeri complessi rappresentati da vettori partenti dall’origine grafico plot con barre d’errore grafico di vettori di numeri complessi partenti da punti dell’asse x a distanza regolare istogramma grafico di coordinate polari angolo su raggio grafico di gradienti o campi vettoriali istogramma ad angoli grafico a barre non piene riempie un plot con un colore Tabella 13.3: Comandi per grafica 2D comando zoom on permette di cliccare con il mouse (sinistro) all’interno di un grafico oppure di selezionare una zona, per ingrandire determinati particolari, mentre l’utilizzo del bottone destro riporta gradatamente l’immagine alle dimensioni normali.

hist polar quiver rose stairs fill

13.3

Il comando subplot

` possibile portare pi` E u grafici sulla stessa finestra, suddividendola in zone con il comando subplot . x1=-2.9:0.2:2.9; y1=randn(5000,1); subplot(2,2,1); hist(y1,x1); title(’Histogram’) %
7 aprile 2003 Copyright 2003 Roberto Bucher 61

Introduzione a Matlab

Capitolo 13. Grafica

x2=0:0.1:2; y2=erf(x2); e2=rand(size(x2))/10; subplot(2,2,2); errorbar(x2,y2,e2); title(’Errorbar’) % x3=logspace(-2,2); y3=1+j*x3; y3=-20*log10(abs(y3)); subplot(2,1,2); semilogx(x3,y3),grid title(’Semilogx’) Il risultato ` e mostrato nella figura 13.2
500 400 300 200 100 0 −4 Histogram 1.2 1 0.8 0.6 0.4 0.2 0 −2 0 2 4 −0.2 −1 0 1 2 3 Errorbar

0 −10 −20 −30 −40 −2 10

10

−1

10

0

10

1

10

2

Figura 13.2: Risultato del comando subplot

13.4

Trasformazione di coordinate

Matlab contiene tutta una serie di funzioni che sono in grado di trasformare coordinate da un sistema ad un altro, sia in 2D che in 3D. Le operazioni a disposizione sono riportate nella tabella 13.4

13.5

Grafica 3D

I comandi messi a disposizione da Matlab per l’elaborazione di immagini e grafici 3D sono riportati nella tabella 13.5
62 Copyright 2003 Roberto Bucher 7 aprile 2003

13.5. Grafica 3D

Introduzione a Matlab

cart2pol cart2sph pol2cart sph2cart

coordinate cartesiane → coordinate polari coordinate cartesiane → coordinate sferiche coordinate polari → coordinate cartesiane coordinate sferiche → coordinate cartesiane Tabella 13.4: Trasformazione di coordinate

plot3 contour,contour3 pcolor image mesh, meshc, meshz surf, surfc, surfl slice fill3 zlabel clabel

grafico a linea 3D curve di livello grafico 2D in cui il colore rappresenta la 3. Dimensione matrice come immagine 3D prospettici Grafici di superficie, eventualmente con illuminazione grafico vlolumetrico a fette Poligono 3D con riempimento Label asse z Label curve di livello

Tabella 13.5: Comandi per grafica 3D

Inoltre ci sono altri comandi per modificare le viste di un grafico 3D (tabella 13.6. Alcuni esempi di grafica 3D sono riportati nelle figure 13.3, 13.4, 13.5, 13.6, 13.7, 13.8, 13.9 e 13.10. Da notare anche l’uso della funzione peaks che genera un particolare grafico 3D, utilizzato negli esempi. Il comando meshgrid , genera, partendo da due vettori x e y, 2 matrici X e Y in cui ci sono ripetuti tutti i valori di x (riga dopo riga) e y (colonna dopo colonna), in modo da creare una griglia nei cui nodi si ritrovano tutte le possibili combinazioni (x,y). Il comando surfl inserisce una fonte di luce per illuminare la superficie. Il comando view permette di modificare gli angoli di vista di una figura 3D. Questi angoli possono essere modificati anche interattivamente tramite il comando rotate3d . Un’ulteriore manipolazione dei colori dei grafici ` e possibile con i comandi colormap e shading .

view viewmtx rotate3d

modifica il punto di vista calcola la matrice di trasformazione per il nuovo punto di vista rotazione interattiva di una figura con il mouse Tabella 13.6: Comandi per la vista 3D

7 aprile 2003

Copyright 2003 Roberto Bucher

63

5 0.20) 45 40 35 30 25 20 15 10 5 5 10 15 20 25 30 35 40 45 Figura 13.5: Comando contour3 64 Copyright 2003 Roberto Bucher 7 aprile 2003 .Introduzione a Matlab Capitolo 13.5 0 1 Figura 13.20) 8 6 4 2 0 −2 −4 −6 40 30 20 10 10 30 20 40 Figura 13.4: Comando contour >>contour3(peaks.t) 35 30 25 20 15 10 5 0 1 0.5 −1 −1 −0. >> plot3(sin(t).3: Comando plot3d >> contour(peaks.5 0 −0. Grafica >> t=0:pi/50:10*pi.cos(t).

6: Comando mesh >> >> >> >> >> >> x=-8 :. [X. Grafica 3D Introduzione a Matlab >> >> >> >> >> >> x=-8 :.y).2 0 −0./R.4 10 5 0 −5 −10 −10 −5 5 0 10 Figura 13.Y]=meshgrid(x.2 0 −0.5:8. R=sqrt(X.4 0.2 −0.8 0./R.^2)+eps.Y]=meshgrid(x.^2+Y. R=sqrt(X.Y.y). mesh(X.Z) 1 0.Y. Z=sin(R).7: Comando meshz >> surfl(peaks) 10 8 6 4 2 0 −2 −4 −6 −8 50 40 30 20 10 0 0 10 30 20 40 50 Figura 13.8 0.8: Comando surfl >> surfl(peaks) >> view(40.13. Z=sin(R).5.6 0.-10) 10 8 6 4 2 0 −2 −4 −6 −8 0 10 20 30 40 50 0 10 20 30 40 50 Figura 13.9: Comando view 7 aprile 2003 Copyright 2003 Roberto Bucher 65 .Z) 1 0.5:8.^2)+eps. [X.4 0.^2+Y. y=x.6 0.4 10 5 0 −5 −10 −10 −5 5 0 10 Figura 13.2 −0. y=x. meshz(X.

ps2. mediante il comando moviein . getframe e movie .Animation . surf(z) . Il comando comet lavora in 2D. Un esempio che dimostra ottimamente questi comandi ` e quello messo a disposizione da Matlab nella demo sotto Matlab . epsc2 • Printer drivers di Windows .10: Comando pcolor 13. Un programma che si pu` o scrivere ed eseguire ` e il seguente z=peaks . Per i dettagli si consiglia di chiamare il comando >> help print La modifica del formato di stampa non ` e semplicissima. permette di creare un puntino luminoso mobile che disegna gradatamente un grafico di tipo parametrico. Si possono creare anche animazioni registrando le immagini come singoli fotogrammi di un film.7 Animazioni In Matlab esiste la possibilit` a di animare grafici in diversi modi. Grafica >> pcolor(peaks) 45 40 35 30 25 20 15 10 5 5 10 15 20 25 30 35 40 45 Figura 13. HP PaintJet. GIF ecc.eps.6 Stampa di immagini Matlab pu` o stampare in 3 modi differenti • PostScript Driver di Matlab : ps. colormap(gray) shading interp 66 Copyright 2003 Roberto Bucher 7 aprile 2003 . forniti con Matlab : – HP LaserJet. psc. mentre il corrispondente comando per l’ambiente 3D ` e comet3 . ` e possibile anche il salvataggio nel clipboard come Bitmap o Metafile. con l’animazione di una carica in un campo elettrico. eps2. epsc.Introduzione a Matlab Capitolo 13. psc2. • GhostScript printer drivers.Visualization . HP Laserjet+. HP DeskJet 500C. poich´ e deve essere fatta mediante i comandi get (vedi capitolo dedicato alle grafica avanzata). 13. Quello pi` u semplice.

M=moviein(20) .20) % esegui l’animazione 7 aprile 2003 Copyright 2003 Roberto Bucher 67 .n)=getframe . Animazioni Introduzione a Matlab lim=axis .z) shading interp axis(lim) M( :. end movie(M.13.7. % prepara 20 fotogrammi for n=1 :20 % registra le immagini surf(sin(2*pi*n/20)*z.

Introduzione a Matlab Capitolo 13. Grafica 68 Copyright 2003 Roberto Bucher 7 aprile 2003 .

2) (14.1 ode23 ode45 ode113 ode15s ode23s odeset odeget odeplot odephas2 odephas3 equazioni differenziali di ordine basso equazioni differenziali di ordine medio equazioni differenziali di ordine variabile equazioni differenziali rigide di ordine variabale equazioni differenziali rigide di ordine basso crea/modifica i parametri di integrazione richiama i parametri di integrazione plot nel tempo diagramma degli stati (fasi) bidimensionale diagramma delle fasi (stati) tridimensionale Tabella 14.4) x2 1 − x1 (14.3) (14. Ordine.Capitolo 14 Equazioni differenziali La versione di base di Matlab contiene diverse funzioni per la risoluzione di equazioni differenziali (tabella 14. l’equazione differenziale di Van der Pol x ¨ + x2 − 1 x ˙ +x=0 (14.1) viene ridotta con la sostituzione x1 = x x2 = x ˙1 = x ˙ nel sistema x ˙ 1 = x2 x ˙ 2 = x2 1 − 7 aprile 2003 (14. Per esempio. mediante una sostituzione di variabile.5) 69 Copyright 2003 Roberto Bucher .1: Comandi per integrazione numerica Per risolvere un’equazione differenziale o un sistema di equazioni differenziali occorre innanzitutto ridurre il problema ad un sistema di equazioni differenziali di 1.

1).x) xdot=zeros(2. x2 e le loro derivate.Introduzione a Matlab Capitolo 14.4]). Equazioni differenziali e quindi risolto.1 5 4 3 2 1 0 −1 −2 −3 0 2 4 6 8 10 12 14 16 18 20 Figura 14. >> [t.x(:. La soluzione di un’equazione o di un sistema di equazioni differenziali richiede la programmazione di una funzione dichiarata come function xdot=<nome funzione>(t.x) dove xdot e x sono vettori contenenti le variabili di x1 . per vedere meglio il ciclo che si forma con diverse condizioni iniziali.t.[0.x(:.*x(1))-x(1) . una in funzione dell’altra.x0) dove time contiene le informazioni relative ai tempi di integrazione e x0 ` e un vettore colonna con le condizioni iniziali x10 e x20 .1: Simulazione dell’equazione di Van der Pol Interessante ` e la possibilit` a di vedere il grafico delle due variabili di stato.[time]. con i comandi 70 Copyright 2003 Roberto Bucher 7 aprile 2003 .2)) Il risultato della simulazione ` e riportato nella figura 14.20]. Nel caso della funzione di Van der Pol il programma ` e function xdot=vdpol(t.1).x]=ode23(’vdpol’. xdot(1)=x(2) . xdot(2)=x(2)*(1-x(1). La soluzione di quest’equazione si trova con il comando [t.[0.x]=ode23(’vdpol’. >> plot(t.

x(:.5 −1 −0.1).20].x]=ode23(’vdpol’.5 2 2.2)) hold off Il risultato ` e mostrato nella figura 14.2)) hold on [t.[-1.5 Figura 14.-2]).2: Diagramma delle fasi dell’equazione di Van der Pol Per chi lavora molto a livello di equazioni differenziali ` e consigliabile l’uso di uno strumento quale Simulink che rispetto a Matlab presenta soluzioni pi` u complete.2)) [t. 7 aprile 2003 Copyright 2003 Roberto Bucher 71 .x(:.20].5 −2 −1. plot(x(:.x(:.1]).4]).x]=ode23(’vdpol’.[0.x]=ode23(’vdpol’.[0.1). plot(x(:.5 0 0.[0.[0.[0. plot(x(:.Introduzione a Matlab >> >> >> >> >> >> >> >> [t. 5 4 3 2 1 0 −1 −2 −3 −2.20].5 1 1.2.1).

Introduzione a Matlab Capitolo 14. Equazioni differenziali 72 Copyright 2003 Roberto Bucher 7 aprile 2003 .

>> load operaz.0160 0.dat operaz.dat % salva in forma binaria x.dat >> whos Name Size Elements operaz 10 by 3 30 Bytes 240 Density Full Complex No Grand total is 30 elements using 240 bytes Il salvataggio di dati ` e possibile specificando un formato con il comando save .0310 0.dat operaz. Il metodo pi` u semplice consiste nell’avere questi dati in un file in formato ASCII. in Matlab viene creata una matrice operaz di grandezza 10x3.0030 0.0020 -5 -9 -23 -53 -105 -185 -299 -453 -653 -905 Questi dati possono essere salvati su un file (per esempio operaz.Capitolo 15 Input/Output Spesso si ` e confrontati con dati raccolti con altri programmi che si vorrebbero analizzare mediante Matlab.0090 0. come nel prossimo esempio 1 2 3 4 5 6 7 8 9 10 2 0. In questo esempio. La sintassi esatta ` e >> >> >> >> >> save save save save save operaz.dat operaz.y % salva solo le variabili x e y -ascii % salva in forma ascii 8 bit -double % salva in forma ascii 16 bit -ascii -tabs % salva in forma ascii %con tabulatori Copyright 2003 Roberto Bucher 73 7 aprile 2003 .0020 0.dat operaz.0740 0.2500 0.0050 0.dat ) e caricati in Matlab con il comando load .

Il primo esempio ` e un programma che legge un file di testo function str=leggi(nomefile) fid=fopen(nomefile.fclose fread. generalmente lo schermo.’float64’) .fprintf fgetl.ftell.fgets ferror. fopen.Introduzione a Matlab Capitolo 15. 74 Copyright 2003 Roberto Bucher 7 aprile 2003 .bin’. status=fseek(fid.1: Comandi di IO Altri metodi di I/O sono descritti nell’allegato A. str=setstr((fread(fid))’) . Il prossimo script genera un file binario con 1000 elementi.’r’) . Input/Output Se il nome del file ` e stdio l’output ` e fatto sullo standard output device.dat’.*cos(t) .sscanf apertura e chiusura di un file I/O per dati non formattati I/O per dati formattati (formattazione con i comandi simili in C I/O dati formattati Come i corrispondenti comandi in C Conversione di stringhe Tabella 15.1000) . ele_1=fread(fid.bin’.’) % legge un file %delimitato da ’. count=fwrite(fid.fwrite fscanf.’w’) .’ Il secondo metodo utilizza tutta una serie di comandi derivati e simili a quelli del linguaggio C per effettuare le operazioni di I/O.fseek. Questi comandi sono riportati nella tabella 15.’.’float64’) . fclose(fid) . % posiz=121 . y=2*sin(t).(n-1)*8.1.a. I comandi dlmread e dlmwrite lavorano su files ASCII con elementi delimitati da un separatore.1.’bof’) . legge poi un elemento ad una certa posizione. fid=fopen(’dati. >> A=dlmread(’dati. fclose(fid) Il prossimo esempio scrive su un file testo i valori di una funzione t=0 :pi/20 :2*pi . fid=fopen(’dati. a=rand(1. frewind ssprintf.’r’) . fclose(fid) .

’Valori della funzione sin(t)*cos(t) tra 0 e 2*pi\n\n’) . fprintf(fid. fclose(fid) 7 aprile 2003 Copyright 2003 Roberto Bucher 75 .txt’.2f %10. fid=fopen(’funzione.Introduzione a Matlab funz=[t .6f\n’.’w’) .funz) .’%4.y] . fprintf(fid.

Introduzione a Matlab Capitolo 15. Input/Output 76 Copyright 2003 Roberto Bucher 7 aprile 2003 .

Nella versione PC ` e possibile effettuare il debugger direttamente nell’editor integrato. n) Copyright 2003 Roberto Bucher 77 dbclear dbstatus dbstep dbcont dbup dbdown dbstack dbquit 7 aprile 2003 .Capitolo 16 Debugger Ad eccezione delle versioni per PC e MAC. per poter in seguito inserire dei breakpoints (comando dbtype ). Quando si raggiunge un punto di break. Per utilizzare il debugger conviene inizialmente listare i comandi del file con l’indicazione del numero di riga. e non con script di comandi. e occorre in ogni caso passare dalle procedure descritte in questo capitolo. dbtype dbstop mostra un file M con il numero di riga Inserisce un breakpoint all’inizio di una funzione ad una certa riga se c’` e un errore se si ottiene inf o NaN elimina i breakpoint lista dei breakpoint esecuzione passo a passo continuare l’esecuzione risalire di un livello di scope per visualizzare variabili locali ritornare al livello pi` u basso visualizzare i comandi collegati al breakpoint attuale abbandonare il modo debug Tabella 16. Matlab contiene un sistema di debugging utilizzabile solo per le funzioni. questo non ` e possibile. Con Unix. il sistema si ferma e passa automaticamente in modo debug . utilizzando breakpoints e visualizzando variabili. Attenzione. Se si edita un programma o si utilizza il comando clear vengono persi i breakpoint precedentemente inseriti.1. La lista dei comandi di debugger ` e riportata nella tabella 16. d2.1: Comandi del debugger Esempi di comandi di debugger possono essere >> dbtype linspace 1 function y = linspace(d1.

% % See also RCOND. Copyright (c) 1984-94 by The MathWorks. Inc.m . >> dbtype test 1 function a=test(b) 2 c=sqrt(b)*cos(b). >> dbstop in linspace >> dbstop at 14 in linspace >> dbstop if error Vediamo ora una sequenza di debugging completa.c). end y = [d1+(0:n-2)*(d2-d1)/(n-1) d2]. Inc.Introduzione a Matlab Capitolo 16.m e test1. 3 [w. % % See also LOGSPACE. which is the condition number of X in 2-norm.c) 2 q=cond(b). CONDEST. % LINSPACE(x1. 3 a=test1(b. 4 a=w*q. N) generates N points between x1 and x2. NORM. return Copyright 2003 Roberto Bucher 7 aprile 2003 . NORMEST. :.e]=eig(c). x2. % LINSPACE(x1. Debugger 2 3 4 5 6 7 8 9 10 11 12 13 14 %LINSPACE Linearly spaced vector. % % % J. % Handle null matrix if length(x) == 0 y = NaN. 2-11-92 LS. x2) generates a row vector of 100 linearly % equally spaced points between x1 and x2. >> dbtype cond 1 2 3 4 5 6 7 8 9 10 11 12 13 14 78 function y = cond(x) %COND Matrix condition number. Little 11-15-85 Revised 3-9-87 JNL. >> dbtype test1 1 function a=test1(b.N. % COND(X) is the ratio of the largest singular value of X % to the smallest. dopo aver definito due funzioni test. if nargin == 2 n = 100. % Copyright (c) 1984-94 by The MathWorks.

0000 6.4641 K>> dbup In workspace belonging to d:\matlab\toolbox\bucher\corso\test1. K>> dbstack % K>> indica modo debugger In d:\matlab\toolbox\bucher\corso\test.’) end s = svd(x).9282 3.m at line 3 K>> who Your variables are: x K>> x x = 8 1 6 3 5 7 4 9 2 K>> dbstep 20 if any(s == 0) % Handle singular matrix K>> s s = 15. K>> who 7 aprile 2003 Copyright 2003 Roberto Bucher 79 y % posso visualizzare ed ev.m at line 2 In d:\matlab\toolbox\bucher\corso\test./min(s). K>> dbstack In d:\matlab\toolbox\matlab\matfun\cond. % modificare il cont di una variabile .m.m at line 19 In d:\matlab\toolbox\bucher\corso\test1.m at line 2 K>> dbcont 19 s = svd(x). if any(s == 0) % Handle singular matrix disp(’Condition is infinite’) y = Inf.Introduzione a Matlab 15 16 17 18 19 20 21 22 23 24 25 end if issparse(x) error(’Matrix must be non-sparse. % breakpoint 1 % breakpoint 2 >> dbstop in test >> dbstop at 19 in cond >> test(magic(3)) 2 c=sqrt(b)*cos(b). return end y = max(s).

9190 + 2.5722 + 0.9902i 0.5802i -2. K>> who Your variables are: s K>> y y = [] K>> dbcont ans = 2./min(s).9902i 0.0056 x y -1.0. Debugger Your variables are: a b c K>> dbstep 25 y = max(s).0428 3.5722 .5802i -2.2187i -1.9138 + 0.2.6832 1.0.9190 .Introduzione a Matlab Capitolo 16.9138 .2187i 80 Copyright 2003 Roberto Bucher 7 aprile 2003 .

lo sfondo ecc. slide menu a tendina linea di base di un plot poligono chiuso colorato superficie rttangolare (nxm poligoni). In alto troviamo la root che ha identificatore o handle 0.’Times Roman’) .) testo luci Tabella 17.’DefaultAxesFontName’. box di editor. se volessimo cambiare il font di default per i testi sugli assi di una figura possiamo dare >> set(0.1.Capitolo 17 Grafica avanzata (GUI) ` possibile agire sui grafici creati da Matlab modificando direttamente le propriet` E a degli oggetti disegnati. 7 aprile 2003 Copyright 2003 Roberto Bucher 81 image text light . Gli oggetti di Matlab sono principalmente 11.Valore) Ad esempio. ` importante sapere come sono ordinati gerarchicamente all’interno del sistema i diE versi oggetti. secondo la gerarchia visibile nella figura 17.DefaultObjectProperty. Qindi si trovano i diversi oggetti. popup. un cilindro o qualsasi altra figura nello spazio oggetto bidimensionale (foto. root figure axes uicontrol uimenu line patch surface finestra di comando di Matlab figura grafica assi di oggetti complessi bottoni. e sono riportati nella tabella 17. una sfera. ecc.1. ma spesso pu` o essere necessario farle in modo interattivo con comandi in linea nella shell o in un programma. i fonts. come i colori delle curve. Nelle nuove release di Matlab queste modifiche possono essere fatte direttamente tramite menu e bottoni sulla finestra del grafico.1: Oggetti della GUI ` possibile modificare i settaggi di default di ogni oggetto utilizzando il comando set E e specificando l’oggetto e la propriet` a da modificare nel modo seguente set(0. Pu` o essere un cono.

Grafica avanzata (GUI) root figure axis uimenu uicontrol Text-XLabel Text-YLabel Text-Title line patch surface image text light Introduzione a Matlab Figura 17.1: Gerarchia degli oggetti della GUI 82 Copyright 2003 Roberto Bucher 7 aprile 2003 .Capitolo 17.

5 0.2 1 0.2 0.2 0.3 0.0.4 0.5.6 0.9 1 Figura 17.’Ciao a tutti’) La figura ottenuta ` e visibile nella figura 17.0002] CurrentCharacter = CurrentMenu = [1] CurrentObject = [] CurrentPoint = [0 0] FixedColors = [ (8 by 3) ] 7 aprile 2003 Copyright 2003 Roberto Bucher 83 .5 0. Creiamo per prima cosa una figura con una scritta : >> figure >> text(0.3 0.8 0.7 0. partendo da un esempio semplice.m .8 0.m) o nel file startup. in modo da renderli attivi ad ogni nuova sessione di lavoro.5.7 0.Introduzione a Matlab Questi comandi possono essere inseriti nel file di partenza di Matlab (matlabrc.4 0.6 0.9 0.2: Figura di partenza Ora leggiamo l’handle di questa figura >> h=gcf h = 1 Possiamo ora vedere le caratteristiche messa di default di questa figura >> get(h) BackingStore = on Color = [0 0 0] Colormap = [ (64 by 3) ] CurrentAxes = [58. Vediamo ora come ` e possibile modificare alcune propriet` a di oggetti grafici.1 0 Ciao a tutti 0 0.1 0.

Introduzione a Matlab

Capitolo 17. Grafica avanzata (GUI)

InvertHardcopy = on KeyPressFcn = MenuBar = figure MinColormap = [64] Name = NextPlot = add NumberTitle = on PaperUnits = inches PaperOrientation = portrait PaperPosition = [0.25 2.5 8 6] PaperSize = [8.5 11] PaperType = usletter Pointer = arrow Position = [23 299 560 420] Resize = on SelectionType = normal ShareColors = yes Units = pixels WindowButtonDownFcn = WindowButtonMotionFcn = WindowButtonUpFcn = ButtonDownFcn = Children = [58.0002] Clipping = on Interruptible = no Parent = [0] Type = figure UserData = [] Visible = on ans = [] Settiamo ora il colore dello sfondo a grigio >> set(h,’Color’,[0.5,0.5,0.5]) Vediamo ora l’handle agli assi, per poter accedere agli oggetti della figura >> a=gca a = 58.0002 Le caratteristiche di default degli assi sono >> get(a) AspectRatio = [NaN NaN]
84 Copyright 2003 Roberto Bucher 7 aprile 2003

Introduzione a Matlab

Box = off CLim = [0 1] CLimMode = auto Color = none CurrentPoint = [ (2 by 3) ] ColorOrder = [ (6 by 3) ] DrawMode = normal FontAngle = normal FontName = Helvetica FontSize = [12] FontStrikeThrough = off FontUnderline = off FontWeight = normal GridLineStyle = : LineStyleOrder = LineWidth = [0.5] NextPlot = replace Position = [0.13 0.11 0.775 0.815] TickLength = [0.01 0.025] TickDir = in Title = [63.0001] Units = normalized View = [0 90] XColor = [1 1 1] XDir = normal Xform = [ (4 by 4) ] XGrid = off XLabel = [60.0002] XLim = [0 1] XLimMode = auto XScale = linear XTick = [0 0.2 0.4 0.6 0.8 1] XTickLabels = 0 0.2 0.4 0.6 0.8 1 XTickLabelMode = auto XTickMode = auto YColor = [1 1 1] YDir = normal YGrid = off YLabel = [61.0002] YLim = [0 1] YLimMode = auto
7 aprile 2003 Copyright 2003 Roberto Bucher 85

Introduzione a Matlab

Capitolo 17. Grafica avanzata (GUI)

YScale = linear YTick = [ (1 by 11) ] YTickLabels = [ (11 by 3) ] YTickLabelMode = auto YTickMode = auto ZColor = [1 1 1] ZDir = normal ZGrid = off ZLabel = [62.0002] ZLim = [0 1] ZLimMode = auto ZScale = linear ZTick = [0 0.5 1] ZTickLabels = ZTickLabelMode = auto ZTickMode = auto ButtonDownFcn = Children = [59.0002] Clipping = on Interruptible = no Parent = [1] Type = axes UserData = [] Visible = on ans = [] Vediamo che ` e definito un unico figlio (Children) di questi assi. Possiamo vederne l’handle e le caratteristiche >> ch=get(a,’Children’) ch = 59.0002 >> get(ch) Color = [1 1 1] EraseMode = normal Extent = [0.498845 0.469208 0.17321 0.0527859] FontAngle = normal FontName = Helvetica FontSize = [12] FontStrikeThrough = off FontUnderline = off FontWeight = normal HorizontalAlignment = left Position = [0.5 0.5 0] Rotation = [0]
86 Copyright 2003 Roberto Bucher 7 aprile 2003

sono riportati nell’allegato B. Le propriet` a di ogni oggetto e i possibili valori a disposizione.[0. 7 aprile 2003 Copyright 2003 Roberto Bucher 87 .’Rotation’.90) set(ch. che pu` o essere parzialmente automatizzato con degli script e delle funzioni. Utilizzando unicamente i comandi get e set . La manipolazione di immagini non ` e difficile.’String’.30) set(ch.’Ciao’) set(ch. ruotiamo il testo di 90 gradi e aumentiamo la grandezza del font >> >> >> >> >> >> set(ch.1. si possono modificare a piacimento le caratteristiche di un grafico.Introduzione a Matlab String = Ciao a tutti Units = data VerticalAlignment = middle ButtonDownFcn = Children = [] Clipping = off Interruptible = no Parent = [58.0]) set(ch.’FontSize’. il testo della stringa.’Color’.’FontSize’.30) Il risultato finale ottenuto ` e visibile nella figura 17.3.0002] Type = text UserData = [] Visible = on ans = [] Cambiamo il colore in verde.’center’) set(ch.’HorizontalAlignment’. Chiaramente si tratta di un lavoro relativamente lungo.

Introduzione a Matlab Capitolo 17.6 0.4 Ciao 0.7 0.2 0.5 0.8 0.8 0.9 0.1 0.7 0.3: Risultato finale della manipolazione 88 Copyright 2003 Roberto Bucher 7 aprile 2003 .3 0.1 0 0 0. Grafica avanzata (GUI) 1 0.6 0.2 0.4 0.5 0.9 1 Figura 17.3 0.

possono essere utilizzate anche su n dimensioni.:. Le funzioni che permettono di creare matrici speciali nelle due dimensioni. il comando ones(2. 3.7.5.[2 2 3 3]) 7 aprile 2003 Copyright 2003 Roberto Bucher 89 .Capitolo 18 Strutture particolari 18.2.0 di Matlab le dimensioni delle matrici non sono pi` u limitate a 2.a.6.2) = 10 20 30 40 50 60 70 80 90 La rappresentazione di una matrice multidimensionale viene fatta pagina per pagina.:. >> a=[1. la terza dimensione ` e definita pagina (page ).b) c(:. per concatenare delle matrici bidimensionali sulla 3.1 Matrici multidimensionali Dalla versione 5. Per crearla occorre utilizzare il comando cat . Con i comando repmat ` e possibile creare una matrice multidimensionale con contenuto costante >> B=repmat(pi.1) = 1 2 3 4 5 6 7 8 9 c(:. ma possono essere pi` u grandi. ad esempio.4. 1) permette di creare una matrice di uni su 4 dimensioni.9] a = 1 2 3 4 5 6 7 8 9 >> b=10*a b = 10 20 30 40 50 60 70 80 90 >> c=cat(3. Quando vogliamo utilizzare una matrice a 3 dimensioni.8. 4. dimensione.3. Per esempio.

1416 B(:.1416 3.2) 3.1) 3.1416 3.1416 3.1416 B(:.:.1.:.1416 3.1416 3.1416 3.1416 B(:.3) 3. flipdim ndgrid ndims permute.1416 Ta tabella 18.:.1mostra altri possibili comandi su matrici multidimensionali.1416 3.3) 3.1.1416 3. sono stati completati con un’informazione supplementare che permette di decidere su quale dimensione vanno applicati (vedi help di ogni comando).1416 3.3.2.1) 3.1416 3.1416 3.ipermute reshape shiftdim squeeze sub2ind.2.1: Operazioni su matrici multidimensionali Anche diversi comandi come sum .1416 B(:.1) 3.1416 = 3.1416 3.1416 = 3.1416 3. 90 Copyright 2003 Roberto Bucher 7 aprile 2003 .:.1416 3.Introduzione a Matlab Capitolo 18.:.1416 B(:.2.1.1416 = 3.:.1416 B(:. cumsum ed altri ancora.:.3) 3.1416 = 3.1416 = 3.1416 = 3.1416 B(:.1416 3.1416 3.1416 3.2) 3.3.1416 3.2) 3.ind2sub gira una matrice su una determinata dimensione genera una matrice multidimensionale per funzioni o interpolazione numero delle dimensioni di una matrice permuta le dimensioni di una matrice cambia le dimensioni sposta le dimensioni elimina dimensioni singole indice lineare corrispondente Tabella 18.:.3. Strutture particolari B(:.1416 B(:. prod .:.1416 = 3.1416 = 3.1416 = 3.

8. 7 aprile 2003 Copyright 2003 Roberto Bucher 91 8 7 6 5 4 3 2 1 .3.6.7. Da notare che l’indicizzazione ad una cella viene fatto utilizzando le parentesi graffe.2}=2+3i A = [3x3 double] [2. ecc.0000+ 3.6.0000i] >> A{2. senza dover a tutti i costi ridimensionare ogni riga di una matrice alla dimensione pi` u grande (vedi capitolo sulle stringhe). Per accedere ad un contenuto possiamo farlo sfruttando le parentesi graffe >> A{2. Le celle possono essere create direttamente per assegnamento. Visualizziamo il contenuto di A >> A A = [3x3 double] ’Ciao a tutti’ [2. L’uso principale previsto ` e quello della gestione delle stringhe.1. >> A(1.0000i] [1x10 double] Possiamo vedere come si visualizzino informazioni sul contenuto di ogni cella.2} ans = 10 9 oppure >> A{2.2 riporta alcuni comandi applicabili su celle.3. ma non il contenuto stesso. Celle Introduzione a Matlab 18.0000+ 3.0000+ 3.8.9] A = [3x3 double] Completiamo ora questa matrice di celle >> A{1. La tabella 18.5.9]} A = [3x3 double] oppure >> A{1.2.1}=[1.1}=’Ciao a tutti’ A = [3x3 double] [2.4.1)={[1.2.2. o utilizzando il comando cell. Le matrici di celle possono essere modificate e manipolate come normali matrici (concatenazione. scambio di elementi.7.0000i] ’Ciao a tutti’ [] >> A{2.2}(2) ans = 9 La matrice di celle pu` o anche essere visualizzata in forma grafica (vedi figura 18.).2 Celle Le celle sono matrici che possono contenere elementi di tipo diverso fra di loro.4.18.5.2}=10:-1:1.

cognome=’Bucher’ professore = cognome: ’Bucher’ >> professore. Le strutture sono particolari variabili che contengono dei campi con informazioni di tipi differente.1: Risultato del comando cellplot cell cell2struct celldisp cellplot num2cell crea una cella conversione da cella astruttura mostra la struttura della cella mostra la struttura della cella in forma grafica converte una matrice in una cella Tabella 18.’Automazione’} professore = cognome: ’Bucher’ nome: ’Roberto’ materia: {1x2 cell} >> professore.3 Strutture Un’altra novit` a introdotta dalla versione 5 sono le strutture. I campi possono essere generati dinamicamente nel momento in cui vengono utilizzati per la prima volta.Introduzione a Matlab Capitolo 18. Le strutture utilizzano la sintassi con il punto. oppure possono essere stati dichiarati prima dell’uso. sintassi comune a molti linguaggi di programmazione.materia{1} ans = Regolazione 92 Copyright 2003 Roberto Bucher 7 aprile 2003 . Strutture particolari >>cellplot(A) 2+3i Ciao a tutti Figura 18.materia={’Regolazione’.nome=’Roberto’ professore = cognome: ’Bucher’ nome: ’Roberto’ >> professore. >> professore.2: Comandi applicabili a celle 18.

’Caio’}.Materie) professore = 1x3 struct array with fields: cognome nome materia L’accesso ai dati pu` o essere fatto come per le normali matrici >> professore(1) ans = cognome: ’Bucher’ nome: ’Roberto’ materia: {1x2 cell} >> professore.3.{1}. Ulteriori informazioni su celle e strutture possono essere trovate con il comando help datatypes .{’Matematica’}.’Bernasconi’.’nome’) ans = Roberto ` possibile accedere al nome dei campi tramite il comando fieldnames . una cella. in modo da poter E utilizzare il risultato ad esempio in un programma >> T=fieldnames(professore) T = ’cognome’ ’nome’ ’materia’ Altri comandi applicabili alle strutture sono riportati nella tabella 18.18.’nome’.nome ans = Roberto ans = Giovanni ans = Caio >> getfield(professore. 7 aprile 2003 Copyright 2003 Roberto Bucher 93 . Strutture Introduzione a Matlab Come si pu` o vedere l’elemento di una struttura pu` o essere una matrice.’Tizio’}. >> Nomi={’Roberto’. o un’altra struttura.’Giovanni’. >> Materie={{’Regolazione’.Cognomi.3. I dati possono essere immessi anche utilizzando il comando struct >> Cognomi={’Bucher’.’Automazione’}.Nomi. >> professore=struct(’cognome’.’materia’.{’Latino’}}.

Introduzione a Matlab Capitolo 18. Strutture particolari rmfield setfield struct2cell isstruct cancellazione di un campo sostituzione del contenuto di un campo conversione da struttura a cella controllo se un certo elemento ` e una struttura Tabella 18.3: Comandi su strutture 94 Copyright 2003 Roberto Bucher 7 aprile 2003 .

La classe indica la struttura di una variabile e le operazioni e funzioni che possono essere applicate a questa variabile. gli oggetti vengono creati dinamicamente tramite un costruttore della classe.2 Costruttori Oggetti di una classe possono essere instanziati senza doverli dichiarare in precedenza. sparse . oppure un altro polinomio. Esiste anche la possibilit` a di sovrascrivere alcuni metodi (overloading). che verr` a chiamato passando come parametro la matrice dei coefficienti. 19. In alcuni toolbox troviamo oggetti particolari. Oggetti possono essere implementati specificandone la struttura e creando direttori di funzioni che agiscono su questi oggetti (metodi). struct e cell sono gi` a implementati come oggetti. Come in altri linguaggi ad oggetti il costruttore mantiene il nome della classe.1 Introduzione Tramite gli oggetti e le classi ` e possibile introdurre in Matlab nuovi tipi di dati e nuove operazioni.Capitolo 19 Programmazione orientata agli oggetti 19. come ad esempio nel toolbox di controllo con gli oggetti LTI. Le informazioni e i metodi di una classe vanno messi in un direttorio con il nome @nomeclasse . i tipi double . Quale esempio utilizzeremo un nuovo oggetto da creare chiamato polinomio . Creiamo ora il costruttore. Il nostro oggetto sar` a una struttura con un solo campo contenente una matrice di coefficienti. In Matlab a partire dalla versione 5. char . Nel nostro esempio dobbiamo creare un direttorio chiamato @polinomio . function p=polinomio(coeff) % % Costruttore della classe polinomio % % p=polinomio(a) costruisce un polinomio % partendo dai coefficienti a o da un altro polinomio % in coeff % 7 aprile 2003 Copyright 2003 Roberto Bucher 95 .

L’uso di questo costruttore ` e molto semplice >> p=polinomio([1 2 3]) p = polinomio object: 1-by-1 >> p1=polinomio(p) p1 = polinomio object: 1-by-1 >> whos Name Size Bytes Class p p1 1x1 1x1 148 148 polinomio object polinomio object Grand total is 8 elements using 296 bytes 19.’polinomio’).3 Funzioni di conversione Creiamo ora una funzione di conversione da polinomio a double . Programmazione orientata agli oggetti if nargin==0 p. p=class(p. elseif isa(coeff.c=[].’. che ci fornisce il polinomio in forma di stringa 96 Copyright 2003 Roberto Bucher 7 aprile 2003 .c=coeff(:).Introduzione a Matlab Capitolo 19. p=class(p.’polinomio’) p=coeff. Applicando ora la funzione >> double(p) ans = 1 2 3 Nello stesso modo possiamo creare un metodo di conversione a char . La funzione deve avere il nome della classe del risultato function c=double(p) % c=double(p) % Estrazione dei coefficienti del polinomio % c=p. else p. In quest’ultimo caso l’oggetto viene semplicemente copiato. end La funzione isa controlla se l’oggetto passato coef f appartiene gi` a alla classe polinomio .c.’polinomio’).

elseif d==1 s=[s ’x’]. if ~isempty(s) if a>0 s=[s ’ + ’].3. for a=c. s=[]. >> char(p) ans = x^4 + 2*x^3 + 3*x^2 + 4*x + 5 Si pu` o definire un metodo chiamato display . end end d=d-1.c)-1. end end Il risultato della conversione ` e >> p=polinomio([1 2 3 4 5]). if a~=0. end end if a~=1 | d==0 s=[s num2str(a)]. if d>0 s=[s ’*’]. else d=length(p.c. else s=[s ’ . che sar` a il metodo chiamato ogni volta che si deve visualizzare una variabile di tipo polinomio function display(p) % 7 aprile 2003 Copyright 2003 Roberto Bucher 97 . Funzioni di conversione Introduzione a Matlab function s=char(p) % s=char(p) % Estrazione del polinomio come stringa % c=p.’]. a=-a.19. end end if d>=2 s=[s ’x^’ int2str(d)]. if all(c==0) s=’0’.

0. Gli operatori che possono essere sovrascritti sono definiti nella tabella 19. p2=polinomio(p2). in modo da moltiplicare tra di loro due polinomi function res=mtimes(p1.’ = ’.Introduzione a Matlab Capitolo 19.2]) x = x^2 + 2*x + 2 19.c. Programmazione orientata agli oggetti % Mostra il polinomio % disp(’ ’).p2) % % res=p1*p2 moltiplicazione polinomiale % p1=polinomio(p1). Quando ora si crea un elemento di tipo polinomio otteniamo >> x=polinomio([1.4 Overloading All’interno di una classe ` e possibile sovrascrivere gli operatori classici con nuove operazioni inerenti gli oggetti di una classe. cos` ı da utilizzarlo con la nuova classe polinomio . disp([inputname(1). >> p1=polinomio([1.1. function r=roots(p) % % r=roots(p) % % Radici del polinomio % 98 Copyright 2003 Roberto Bucher 7 aprile 2003 .c)).0]) p2 = x^2 >> p3=p1*p2 p3 = x^4 + 2*x^3 + x^2 Possiamo anche sovrascrivere altre funzioni come ad esempio il comando roots . Vediamo ora di sovrascrivere l’operatore * . disp([’ ’ char(p)]) disp(’ ’).1]) p1 = x^2 + 2*x + 1 >> p2=polinomio([1.]) disp(’ ’).2.2.p2. res=polinomio(conv(p1.

Si pu` o analizzare l’oggetto LTI 7 aprile 2003 Copyright 2003 Roberto Bucher 99 .b) lt(a.b) ne(a.b) ctranspose(a) transpose(a) horzcat(a.b) le(a.b] M-file plus(a.b) mrdivide(a.b) ge(a.b) or(a.d. >> p=polinomio([1 3 2 0]) p = x^3 + 3*x^2 + 2*x >> roots(p) ans = 0 -2 -1 19.19.1: Operatori sovrascrivibili r=roots(p.b) and(a.b) not(a) colon(a.b) ldivide(a.b) colon(a./b a.b) eq(a. Ereditariet` a e aggregazione Introduzione a Matlab Operazione a + b a .b) mtimes rdivide(a.b) mpower(a.b) power(a.’ [a b] [a.*b a*b a.5 Ereditariet` a e aggregazione Una classe pu` o ereditare le caratteristiche di un’altra classe ed aggiungere in seguito proprie particolarit` a o modificare metodi della classe superiore.^b a^b a < b a > b a <= b a >= b a ~=b a == b a & b a| b ~a a:d:b a:b a’ a.b) uminus(a) uplus(a) times(a.b -a +a a.b) gt(a.b) minus(a.b) mldivide(a.b) vertcat Descrizione somma sottrazione decremento incremento moltiplicazione elemento x elemento moltiplicazione matriciale divisione a destra divisione a sinistra divisione matriciale a destra divisione matriciale a sinistra potenza elemento x elemento potenza matriciale minore di maggiore di minore o uguale di maggiore o uguale di diverso da uguale a and logico or logico negazione logica operatore : operatore : trasposizione complessa coniugata trasposizione matriciale concatenazione orizzontale concatenazione verticale Tabella 19.\b a/b a\b a.c).5.

Introduzione a Matlab Capitolo 19. il nome della classe e il nome della o delle classi da cui si ereditano le caratteristiche. Per quanto riguarda l’aggregazione. Si pu` o inoltre creare una sottodirectory @private . che contiene metodi privati della classe in questione. per mezzo del comando class . specificando la struttura. 100 Copyright 2003 Roberto Bucher 7 aprile 2003 . che utilizza questi metodi per descrivere i processi in diverse forme (Funzione di trasferimento. Piano degli stati. Programmazione orientata agli oggetti del Control System Toolbox . un oggetto pu` o contenere quali campi altri oggetti. ` possibile avere un’eredit` E a semplice o multipla. Zeri-Poli-Guadagno).

1.License number. Comprehensive hypertext documentation and troubleshooting. .MATLAB version number.MATLAB server host identification number.1 General purpose commands. SIMULINK.Appendice A Comandi di Matlab A. Web browser defaults. Whats new in MATLAB 5. .1 Preferences. General information On-line help.1. Set graphics window defaults for gray-scale monitors. startup finish matlabrc pathdef docopt printopt A.3 Configuration information. Master startup M-file. Display Readme files. . hostid license version A. cedit terminal colordef graymon whitebg A.2 A. On-line help. User finish M-file. MATLAB. display text at command line. and toolbox version information. Printer defaults. Saved preferences files. Set color defaults. Copyright 2003 Roberto Bucher 101 help helpwin helpdesk demo ver whatsnew Readme 7 aprile 2003 . Set command line editor keys.1.1 A. Set graphics terminal type. Change axes background color. Search path defaults. User startup M-file.2.2 Preference commands. Run demonstrations. separate window for navigation.

Execute operating system command.Introduzione a Matlab Appendice A. Compile MEX-function. List functions in memory. Control paged output in command window. Quit MATLAB session. Save text of MATLAB session. Search all M-files for keyword. echo more diary format A. long form. Add directory to search path. Save workspace variables to disk.2. Locate functions and files.2 Managing the workspace. Execute DOS command and return result. Consolidate workspace memory. List MATLAB-specific files in directory. List M-file. Computer type. Copyright 2003 Roberto Bucher 7 aprile 2003 cd pwd dir delete getenv ! dos unix vms web computer 102 . Clear variables and functions from memory. List current variables.2.3 Managing commands and functions.2.2. Edit M-file. Load workspace variables from disk. Get environment variable. List current variables. Show (print) current working directory. Echo commands in M-files. Execute VMS DCL command and return result. Modify search path.4 Managing the search path Get/set search path. Execute UNIX command and return result.6 Operating system commands Change current working directory. Open Web browser on site or files.5 Controlling the command window. Comandi di Matlab A. List directory. who whos clear pack load save quit A. path addpath rmpath editpath A. Set output format. Remove directory from search path.2. Delete file. Create pre-parsed pseudo-code file (P-file). what type edit lookfor which pcode inmem mex A.

8 Profiling M-files. Introduzione a Matlab A./ kron plus uplus minus uminus mtimes times mpower power mldivide mrdivide ldivide rdivide kron A. Change local workspace context. Debug MEX-files (UNIX only).3.2 eq ne lt gt le ge A.3. Display function call stack. Equal Not equal Less than Greater than Less than or equal Greater than or equal == ~= < > <= >= Logical operators.3 and 7 aprile 2003 Relational operators.Logical AND & Copyright 2003 Roberto Bucher 103 . Change local workspace context. List all breakpoints. Plus Unary plus Minus Unary minus Matrix multiply Array multiply Matrix power Array power Backslash or left matrix divide Slash or right matrix divide Left array divide Right array divide Kronecker tensor product + + * . List debugging commands. Arithmetic operators. List M-file with line numbers. .7 Debugging M-files. Quit debug mode.3. profile A.A.^ \ / . Continue execution.3 A. debug dbstop dbclear dbcont dbdown dbstack dbstatus dbstep dbtype dbup dbquit dbmex A.1 Operators and special characters.\ . .3. Remove breakpoint. Execute one or more lines.* ^ . Set breakpoint.2.Profile M-file execution time.2. Operators and special characters.

. .3. Semicolon .Introduzione a Matlab Appendice A.{ }. Bit-wise shift.] Subscripted assignment ( ). Colon : Parentheses and subscripting ( ) Parentheses and subscripting ( ) Brackets [ ] Braces and subscripting { } Braces and subscripting { } Decimal point ..Set unique. Bit-wise AND.3. bitand bitcmp bitor bitmax bitxor bitset bitget bitshift A.6 Set operators. Copyright 2003 Roberto Bucher 7 aprile 2003 union unique intersect 104 . Comment % Invoke operating system command ! Assignment = Quote Transpose ..Set union. Bit-wise XOR..{ }. Get bit. Maximum floating point integer. Subscript index colon paren paren paren paren paren punct punct punct punct punct punct punct punct punct punct transpose ctranspose horzcat vertcat subsasgn subsref subsindex A. Complex conjugate transpose Horizontal concatenation [. Structure field access . Subscripted reference ( ). . Set bit. Comandi di Matlab or not xor any all A.4 - Logical Logical Logical True if True if OR | NOT ~ EXCLUSIVE OR any element of vector is nonzero all elements of vector are nonzero Special characters.. Bit-wise OR.3.] Vertical concatenation [. Complement bits.Set intersection. Parent directory .5 Bitwise operators. Continuation . Separator . .

Input argument name. Variable length input argument list. Copyright 2003 Roberto Bucher 105 nargchk nargin nargout varargin varargout inputname 7 aprile 2003 . Repeat statements an indefinite number of times. Terminate execution of WHILE or FOR loop.4.True for set member. Variable length output argument list. .2 Evaluation and execution.4.4 Argument handling.4. Number of function output arguments. Validate number of input arguments. Execute string with MATLAB expression. functions. WHILE.3 Scripts. About MATLAB scripts and M-files.1 Programming language constructs. Programming language constructs. script function global mfilename lists exist isglobal A. if else elseif end for while break switch case otherwise return A. Run script. SWITCH statement case. IF statement condition. Assign variable in workspace.A.4. Conditionally execute statements. A. Name of currently executing M-file.Set difference. True for global variables. IF statement condition. Return to invoking function. Evaluate expression in workspace. Default SWITCH statement case. Define global variable. . SWITCH and IF statements. Comma separated lists. Number of function input arguments. Repeat statements a specific number of times. eval feval evalin builtin assignin run A. Add new function.Set exclusive-or. Introduzione a Matlab setdiff setxor ismember . Control flow. and variables.4 A. Check if variables or functions are defined. Terminate scope of FOR. Execute built-in function from overloaded method.4. Switch among several cases based on expression. Execute function specified by string.

2 Basic array information.5. Logarithmically spaced vector. Length of vector. zeros ones eye repmat rand randn linspace logspace meshgrid : A. Uniformly distributed random numbers. Invoke keyboard from M-file. Zeros array.Change size. Display warning message. True for empty matrix. Display error message and abort function. Create user interface menu.5 Message display. Linearly spaced vector. True for logical array. Display an array. Display formatted message. . Prompt for user input. Size of matrix. Normally distributed random numbers.5 A.3 Matrix manipulation. error warning lasterr errortrap disp fprintf sprintf A.4. Identity matrix.Diagonal matrices and diagonals of matrix. Elementary matrices. Create user interface control. Convert numeric values to logical. Comandi di Matlab A.Introduzione a Matlab Appendice A. Copyright 2003 Roberto Bucher 7 aprile 2003 reshape diag 106 .6 Interactive input. input keyboard pause uimenu uicontrol A.1 Elementary matrices and matrix manipulation. True for numeric arrays. Number of dimensions. size length ndims disp isempty isequal isnumeric islogical logical A. Write formatted data to a string. Wait for user response. Ones array.5. Skip error during testing.4.5. True if arrays are identical. Replicate and tile array. X and Y arrays for 3-D plots. Display matrix or text. Last error message. Regularly spaced vector and index into matrix. .

Find indices of nonzero elements. Rotate matrix 90 degrees. Last index. j inf NaN isnan isinf isfinite flops why A. Not-a-Number. Floating point relative accuracy. Infinity. ans eps realmax realmin pi i. Elementary math functions. Largest positive floating point number. compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson A. Hilbert matrix.1 Elementary math functions. True for Not-a-Number. True for infinite elements.. Succinct answer. Special variables and constants.5 Specialized matrices. Inverse Hilbert matrix. Copyright 2003 Roberto Bucher 107 sin 7 aprile 2003 . . Multiple subscripts from linear index. Toeplitz matrix. Flip matrix in up/down direction. Wilkinsons eigenvalue test matrix. Higham test matrices. Trigonometric. Floating point operation count. Magic square. Classic symmetric eigenvalue test problem. Smallest positive floating point number. Pascal matrix.5. Linear index from multiple subscripts. Hankel matrix. Flip matrix along specified dimension. Hadamard matrix. True for finite elements.6.5. Imaginary unit. Extract upper triangular part. Regularly spaced vector and index into matrix.6.Sine.1415926535897. 3. Companion matrix. Introduzione a Matlab tril triu fliplr flipud flipdim rot90 : find end sub2ind ind2sub A.6 A.. Vandermonde matrix. Flip matrix in left/right direction. Most recent answer.4 - Extract lower triangular part..A.

Introduzione a Matlab

Appendice A. Comandi di Matlab

sinh asin asinh cos cosh acos acosh tan tanh atan atan2 atanh sec sech asec asech csc csch acsc acsch cot coth acot acoth

-

Hyperbolic sine. Inverse sine. Inverse hyperbolic sine. Cosine. Hyperbolic cosine. Inverse cosine. Inverse hyperbolic cosine. Tangent. Hyperbolic tangent. Inverse tangent. Four quadrant inverse tangent. Inverse hyperbolic tangent. Secant. Hyperbolic secant. Inverse secant. Inverse hyperbolic secant. Cosecant. Hyperbolic cosecant. Inverse cosecant. Inverse hyperbolic cosecant. Cotangent. Hyperbolic cotangent. Inverse cotangent. Inverse hyperbolic cotangent.

A.6.2

Exponential. Exponential. Natural logarithm. Common (base 10) logarithm. Base 2 logarithm and dissect floating point number. Base 2 power and scale floating point number. Square root. Next higher power of 2.

exp log log10 log2 pow2 sqrt nextpow2

A.6.3

Complex. Absolute value. Phase angle. Complex conjugate. Complex imaginary part. Complex real part. Unwrap phase angle. True for real array. Sort numbers into complex conjugate pairs.
Copyright 2003 Roberto Bucher 7 aprile 2003

abs angle conj imag real unwrap isreal cplxpair
108

A.7.

Specialized math functions.

Introduzione a Matlab

A.6.4

Rounding and remainder. Round towards zero. Round towards minus infinity. Round towards plus infinity. Round towards nearest integer. Modulus (signed remainder after division). Remainder after division. Signum.

fix floor ceil round mod rem sign

A.7
A.7.1

Specialized math functions.
Specialized math functions. Airy functions. Bessel function of the first kind. Bessel function of the second kind. Bessel functions of the third kind (Hankel function). Modified Bessel function of the first kind. Modified Bessel function of the second kind. Beta function. Incomplete beta function. Logarithm of beta function. Jacobi elliptic functions. Complete elliptic integral. Error function. Complementary error function. Scaled complementary error function. Inverse error function. Exponential integral function. Gamma function. Incomplete gamma function. Logarithm of gamma function. Associated Legendre function. Vector cross product.

airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln legendre cross A.7.2

Number theoretic functions. Prime factors. True for prime numbers. Generate list of prime numbers. Greatest common divisor. Least common multiple. Rational approximation. Rational output. All possible permutations. All combinations of N elements taken K at a time.
Copyright 2003 Roberto Bucher 109

factor isprime primes gcd lcm rat rats perms nchoosek
7 aprile 2003

Introduzione a Matlab

Appendice A. Comandi di Matlab

A.7.3

Coordinate transforms. Transform Cartesian to spherical coordinates. Transform Cartesian to polar coordinates. Transform polar to Cartesian coordinates. Transform spherical to Cartesian coordinates. Convert hue-saturation-value colors to red-green-blue. Convert red-green-blue colors to hue-saturation-value.

cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv

A.8
A.8.1

Matrix functions - numerical linear algebra.
Matrix analysis. Matrix or vector norm. Estimate the matrix 2-norm. Matrix rank. Determinant. Sum of diagonal elements. Null space. Orthogonalization. Reduced row echelon form. Angle between two subspaces.

norm normest rank det trace null orth rref subspace A.8.2

Linear equations. Linear equation solution; use "help slash". Matrix inverse. Condition number with respect to inversion. 1-norm condition number estimate. Cholesky factorization. Incomplete Cholesky factorization. LU factorization. Incomplete LU factorization. Orthogonal-triangular decomposition. Non-negative least-squares. Pseudoinverse. Least squares with known covariance.

\ and / inv cond condest chol cholinc lu luinc qr nnls pinv lscov A.8.3

Eigenvalues and singular values. Eigenvalues and eigenvectors. Singular value decomposition. A few eigenvalues. A few singular values. Characteristic polynomial. Polynomial eigenvalue problem. Condition number with respect to eigenvalues. Hessenberg form.
Copyright 2003 Roberto Bucher 7 aprile 2003

eig svd eigs svds poly polyeig condeig hess
110

. Cumulative trapezoidal numerical integration. .Approximate gradient.1 Data analysis and Fourier transforms. Standard deviation.QZ factorization for generalized eigenvalues. Insert column in QR factorization. Product of elements. expm logm sqrtm funm A.9. Copyright 2003 Roberto Bucher 111 corrcoef cov subspace 7 aprile 2003 .Difference and approximate derivative. Givens plane rotation. max min mean median std sort sortrows sum prod hist trapz cumsum cumprod cumtrapz A. qrdelete qrinsert rsf2csf cdf2rdf balance planerot A.Correlation coefficients.9. Matrix logarithm.2 Finite differences.A. Largest component. Diagonal scaling to improve eigenvalue accuracy. Cumulative product of elements. . Smallest component. . Cumulative sum of elements. Average or mean value. .8.4 .5 Factorization utilities Delete column from QR factorization. . Complex diagonal form to real block diagonal form. Basic operations.Covariance matrix.9.Schur decomposition. diff gradient del2 A. Matrix exponential. . Matrix functions. Sort rows in ascending order. Trapezoidal numerical integration. Data analysis and Fourier transforms.Angle between subspaces.3 Correlation. Sum of elements. Histogram.8. Evaluate general matrix function. Median value. Matrix square root.9. Real block diagonal form to complex diagonal form. Sort in ascending order. Introduzione a Matlab qz schur A.Discrete Laplacian.9 A.

Discrete Fourier transform. Data gridding and surface fitting. Deconvolution and polynomial division. Two-dimensional convolution. Comandi di Matlab A. Sound capabilities (Macintosh only). N-D interpolation (table lookup).6 Sound and audio. Read SND resources and files (Macintosh only).1 Interpolation and polynomials.9. Move zeroth lag to center of spectrum. Data interpolation. Two-dimensional inverse discrete Fourier transform.5 Fourier transforms. N-dimensional discrete Fourier Transform.4 Filtering and convolution. Inverse discrete Fourier transform.au") sound file. Read NeXT/SUN (".10. Play vector as sound.wav") sound file. Write NeXT/SUN (". N-dimensional inverse discrete Fourier Transform. Convolution and polynomial multiplication. Write Microsoft WAVE (". N-dimensional convolution.10 A. Convert linear signal to mu-law encoding. Write SND resources and files (Macintosh only).7 Audio file inport/export. Two-dimensional digital filter. Two-dimensional discrete Fourier transform. Convert input string to speech (Macintosh only).au") sound file. One-dimensional digital filter. 3-D interpolation (table lookup). Convert mu-law encoding to linear signal. Copyright 2003 Roberto Bucher 7 aprile 2003 interp1 interp1q interpft interp2 interp3 interpn griddata 112 . fft fft2 fftn ifft ifft2 ifftn fftshift A.9. 2-D interpolation (table lookup). 1-D interpolation (table lookup). Autoscale and play vector as sound.9. Read Microsoft WAVE (".Introduzione a Matlab Appendice A. filter filter2 conv conv2 convn deconv A. Quick 1-D linear interpolation. auwrite auread wavwrite wavread readsnd writesnd A. 1-D interpolation using FFT method. sound soundsc speak recordsound soundcap mu2lin lin2mu A.wav") sound file.9. Record sound (Macintosh only).

Convert roots to polynomial. .10. Find polynomial roots. Introduzione a Matlab A. Closest triangle search.Minimize function of several variables. Numerical integration (quadrature). Delaunay triangulation. higher order method.11. .3 Plotting.2 Spline interpolation.Numerically evaluate double integral. Rectangle intersection area. Multiply polynomials. . .Evaluate piecewise polynomial. True for points inside polygonal region.11. Voronoi diagram. fmin fmins fzero A. roots poly polyval polyvalm residue polyfit polyder conv deconv A.10. delaunay dsearch tsearch convhull voronoi inpolygon rectint polyarea A. . Convex hull. . spline ppval A. Evaluate polynomial with matrix argument. Optimization and root finding.Easy to use function plotter.Minimize function of one variable. Partial-fraction expansion (residues).Numerically evaluate integral.10. low order method.2 quad quad8 dblquad A.Cubic spline interpolation. Evaluate polynomial. Search Delaunay triagulation for nearest point. Function functions and ODE solvers. . Fit polynomial to data.1 Function functions and ODE solvers.11.Numerically evaluate integral.A. Divide polynomials.3 Geometric analysis. . Copyright 2003 Roberto Bucher 113 ezplot fplot 7 aprile 2003 .Find zero of function of one variable. Differentiate polynomial.11 A. Area of polygon.Plot function. . .11.4 Polynomials.

variable order method. .11.4 Inline function object. Elementary sparse matrices. matrix formed from diagonals. Construct INLINE object. variable order method.11. Copyright 2003 Roberto Bucher 7 aprile 2003 sparse full find spconvert 114 .11.1 Sparse matrices.Solve stiff differential equations. Time series ODE output function. (If unsure ode45 ode23 ode113 ode15s ode23s odefile A.Create/alter ODE OPTIONS structure. 2-D phase plane ODE output function. .Solve non-stiff differential equations. normally distributed random matrix.12 A. speye sprand sprandn sprandsym spdiags A. . odeset odeget A. Convert INLINE object to character array.12.Introduzione a Matlab Appendice A.Solve stiff differential equations. Import from sparse matrix external format.12.Get ODE OPTIONS parameters. Convert sparse matrix to full matrix. Create sparse matrix. about stiffness. Sparse Sparse Sparse Sparse Sparse identity matrix. Comandi di Matlab A. .5 Ordinary differential equation solvers. Find indices of nonzero elements.) . try ODE45 first. odeplot odephas2 odephas3 odeprint A.Solve non-stiff differential equations. low order method. Command window printing ODE output function.7 ODE output functions.ODE file syntax. random symmetric matrix. .2 Full to sparse conversion. . medium order method. Function formula. low order method. 3-D phase plane ODE output function. inline argnames formula char A. then ODE15S. . Argument names.6 ODE Option handling. uniformly distributed random matrix.Solve non-stiff differential equations.11.

Random permutation.12.6 Linear Equations (iterative methods). Incomplete Cholesky factorization. Column minimum degree permutation. Replace nonzero sparse matrix elements with ones. Apply function to nonzero matrix elements. Introduzione a Matlab A. Amount of storage allocated for nonzero matrix elements. Estimate the matrix 2-norm.5 Linear algebra. colmmd symmmd symrcm colperm randperm dmperm A. Plot graph. Symmetric reverse Cuthill-McKee permutation. eigs svds luinc cholinc normest condest sprank A. Lay out tree or forest. Dulmage-Mendelsohn permutation. Structural rank. 1-norm condition number estimate.12. as in "graph theory".3 Working with sparse matrices.12. pcg bicg bicgstab cgs gmres qmr A.12. Nonzero matrix elements. A few eigenvalues. Allocate space for sparse matrix. Generalized Minimum Residual Method. BiConjugate Gradients Stabilized Method. Elimination tree.12.A. A few singular values. Symmetric minimum degree permutation.12. Plot elimination tree. Number of nonzero matrix elements. Quasi-Minimal Residual Method. BiConjugate Gradients Method.4 Reordering algorithms. Conjugate Gradients Squared Method. True for sparse matrix. Sparse matrices. Preconditioned Conjugate Gradients Method. Visualize sparsity pattern. Plot picture of tree. Copyright 2003 Roberto Bucher 115 treelayout treeplot etree etreeplot gplot 7 aprile 2003 . Incomplete LU factorization. Column permutation. nnz nonzeros nzmax spones spalloc issparse spfun spy A.7 Operations on graphs (trees).

1 Three dimensional graphs. Zoom in and out on a 2-D plot. . Place text with mouse. Copyright 2003 Roberto Bucher 7 aprile 2003 plot3 mesh surf 116 .Symbolic factorization analysis.Print graph or SIMULINK system. . Graph legend. Text annotation. Axis box. . Elementary 3-D plots.3-D colored surface.Set parameters for sparse matrix routines. .Form least squares augmented system.1 Two dimensional graphs. Grid lines. Create axes in arbitrary positions. Semi-log scale plot. . Polar coordinate plot. Elementary X-Y graphs.Set paper orientation. Control axis scaling and appearance. Linear plot. Semi-log scale plot.2 Axis control.3-D mesh surface.3 Graph annotation.13.12. legend title xlabel ylabel text gtext A.13 A. plot loglog semilogx semilogy polar plotyy A. . print printopt orient A.Printer defaults.Introduzione a Matlab Appendice A.4 Hardcopy and printing.14. X-axis label.Plot lines and points in 3-D space. or save graph to M-file. axis zoom grid box hold axes subplot A. . Create axes in tiled positions. Log-log scale plot. Graph title. Graphs with y tick labels on the left and right.13.13. Hold current graph.8 Miscellaneous.13. . Comandi di Matlab A.14 A. . symbfact spparms spaugment A. Y-axis label.

Three dimensional graphs. Lighting mode. Shades of red and yellow color map. and black color map. Gray-scale with tinge of blue color map. Mesh hidden line removal mode.14. surfl lighting material specular diffuse surfnorm A. Variant of HSV.14. blue.A.4 Color maps. Shades of green and yellow color map.14. Hold current graph. Specular reflectance.3 Lighting. Hue-saturation-value color map. Shades of cyan and magenta color map. Zoom in and out on a 2-D plot.2 . All white color map. Pastel shades of pink color map. white. Copyright 2003 Roberto Bucher 117 axis zoom grid box hold axes subplot 7 aprile 2003 .Filled 3-D polygons. Create axes in tiled positions. Brighten or darken color map. Color map with the line colors. Linear gray-scale color map. Material reflectance mode. Color shading mode. Shades of blue and green color map. Surface normals. Black-red-yellow-white color map. Diffuse reflectance. colormap caxis shading hidden brighten A. hsv hot gray bone copper pink white flag lines colorcube jet prism cool autumn spring winter summer A. Color look-up table. Axis box. Color control. Create axes in arbitrary positions. Pseudocolor axis scaling. 3-D shaded surface with lighting. Introduzione a Matlab fill3 A. Linear copper-tone color map. Prism color map.14.5 Axis control. Shades of magenta and yellow color map.14. Alternating red. Grid lines. Enhanced color-cube color map. Control axis scaling and appearance.

Horizontal 3-D bar graph.14. Z-axis label. Bar graph. Horizontal bar graph.Print graph or SIMULINK system.6 Viewpoint control.Interactively rotate view of 3-D plot. Feather plot. Easy to use function plotter. Specialized 2-D graphs. Comandi di Matlab A.Set paper orientation. view viewmtx rotate3d A. . Stairstep plot. Display color bar (color scale).15 A. Copyright 2003 Roberto Bucher 7 aprile 2003 contour 118 .Introduzione a Matlab Appendice A.View transformation matrix. Filled 2-D polygons. Draw 2-D lines as ribbons in 3-D. X-axis label. Pie chart.14. Graph title. or save graph to M-file. area bar barh bar3 bar3h comet errorbar ezplot feather fill fplot hist pareto pie pie3 plotmatrix ribbon stem stairs A. . Histogram. Error bar plot.8 Hardcopy and printing. . .1 Specialized graphs. Comet-like trajectory. Plot function. Mouse placement of text.7 Graph annotation.Printer defaults.15.2 Contour and 2-1/2 D graphs. . title xlabel ylabel zlabel colorbar text gtext A. 3-D bar graph. Discrete sequence or "stem" plot. 3-D pie chart. . Y-axis label.3-D graph viewpoint specification.Contour plot. print printopt orient A.15. Scatter plot matrix. Pareto chart.14. . Text annotation. Filled area plot.

Introduzione a Matlab contourf contour3 clabel pcolor quiver voronoi A.15. Information about graphics file. Convert index image into movie format. Get movie frame. 3-D quiver plot.Plot color map.15. Triangular mesh plot. Play recorded movie frames. comet3 meshc meshz stem3 quiver3 slice surfc trisurf trimesh waterfall A. Write image to graphics file. 3-D comet-like trajectories. Display color bar (color scale). . Scale data and display as image. Volumetric slice plot. Contour plot elevation labels. Initialize movie frame memory. 3-D stem plot. Linear gray-scale color map. Combination surf/contour plot. .15. Pseudocolor (checkerboard) plot. Quiver plot.Spin color map. 3-D Contour plot. Display image. Brighten or darken color map.15.A.3 - Filled contour plot. Specialized 3-D graphs. Screen capture of current figure.6 Color related functions. capture moviein getframe movie qtwrite rotate frame2im im2frame A.4 Images display and file I/O. Copyright 2003 Roberto Bucher 119 spinmap rgbplot 7 aprile 2003 . 3-D mesh with curtain. Rotate object about specified orgin and direction. Convert movie frame to indexed image. image imagesc colormap gray contrast brighten colorbar imread imwrite imfinfo A. Gray scale color map to enhance image contrast. Color look-up table. Read image from graphics file. Triangular surface plot. Translate movie into QuickTime format (Macintosh only). Waterfall plot. Specialized graphs. Combination mesh/contour plot.5 Movies and animation.15. Voronoi diagram.

Refresh figure. figure gcf clf shg close refresh A.16. axes.Get object properties. subplot axes gca cla axis box caxis hold ishold A.16. light. Hold current graph. Create Create Create Create Create Create Create Create Create Create figure window. Get handle to current axes. Figure window creation and control. line.Generate cylinder. .Set object properties. Control pseudocolor axis scaling.2 Axis creation and control. user interface control.16 A. .Create patch. Solid modeling.Introduzione a Matlab Appendice A. user interface menu.Generate sphere.4 set get reset 120 Handle Graphics operations. . Axis box. Show graph window. Create axes in tiled positions. .16. image.16. figure axes line text patch surface image light uicontrol uimenu A. Close figure. Comandi di Matlab colstyle A. surface. Control axis scaling and appearance.Reset object properties.15.7 . Copyright 2003 Roberto Bucher 7 aprile 2003 . Clear current axes. Clear current figure.3 Handle Graphics objects. patch. . text. Create figure window. Create axes in arbitrary positions. cylinder sphere patch A.1 Handle Graphics.Parse color and style from string. Get handle to current figure. . Return hold state.

Help dialog box.Block execution and wait for resume. uimenu .17 A.True for graphics handles. Axes limits dialog box.17. uiwait . Find objects with specified property values. Copyright 2003 Roberto Bucher 121 dialog axlimdlg errordlg helpdlg 7 aprile 2003 .Block execution and wait for event. Align uicontrols and axes. . GUI functions.Set paper orientation.3 Dialog boxes. waitfor .17. . or save graph to M-file. Get handle to current callback object.M-file preamble for NextPlot property. print printopt orient A. .Wait for key/buttonpress over figure.16. .Printer defaults. selectmoveresize .6 Utilities. rbbox .Drag XOR rectangles with mouse. Graphical user interface tools.Create user interface control.2 GUI design tools. .16.Rubberband box. dragrect . . guide align cbedit menuedit propedit A.17. Get handle to current object. closereq newplot ishandle A.Print graph or SIMULINK system. Design GUI.A.Interactively select.Resume execution of blocked M-file. Hardcopy and printing. Make copy of graphics object and its children. A. Introduzione a Matlab delete gco gcbo gcbf drawnow findobj copyobj A. Edit menu. Flush pending graphics events.Create user interface menu.1 Graphical user interface tools. Create dialog figure. Error dialog box.17. ginput . or copy objects. uiresume .5 - Delete object. waitforbuttonpress . Edit callback. move. uicontrol .Graphical input from mouse. resize. Edit property.Figure close request function. Get handle to current callback figure.

Message box. Get popup menu selection string. makemenu menubar umtoggle winmenu A. clruprop getuprop setuprop A.5 Toolbar button group utilities.7 Miscellaneous utilities. Font selection dialog box. Page position dialog box. Depress button in toolbar button group.17.Introduzione a Matlab Appendice A. Create submenu for "Window" menu item.17. .6 User-defined figure/axes property utilities. Question dialog box.17.4 - Input dialog box. List selection dialog box. Standard open file dialog box. Transform figure objects positions. Color selection dialog box. . Standard save file dialog box. Get figure pointer. Create menu structure. Computer dependent default setting for MenuBar property. Comandi di Matlab inputdlg listdlg menu msgbox questdlg warndlg uigetfile uiputfile uisetcolor uisetfont pagedlg printdlg waitbar A. Query state of toolbar button group. Set status text string in figure.Clear user-defined property. Interactive editing of axes text objects. Get handle of object the pointer is over. Toggle "checked" status of uimenu object. Display wait bar. Button press manager for toolbar button group. Hide/unhide GUI. Get status text string in figure. . Print dialog box. Raise button in toolbar button group. Warning dialog box. Menu utilities. btngroup btnstate btnpress btndown btnup A.Get value of user-defined property. Copyright 2003 Roberto Bucher 7 aprile 2003 allchild hidegui edtext getstatus setstatus popupstr remapfig setptr getptr overobj 122 . Generate menu of choices for user input.Set user-defined property. Create toolbar button group. Set figure pointer. Get all object children.17.

18. white space characters. Justify character array.18 A. Convert integer to string. Convert matrix to evalable string.4 String to number conversion. Convert string to lowercase. Create character array (string). char double cellstr blanks deblank eval A. hexadecimal string to decimal integer. String of blanks.18.A. Convert string to numeric character codes. Find one string within another. ischar iscellstr isletter isspace A.18. Compare first N characters of strings. decimal integer to binary string. Compare strings.1 Character strings. Replace string with another. Write formatted data to string. Read string under format control. Copyright 2003 Roberto Bucher 123 hex2num hex2dec dec2hex bin2dec dec2bin base2dec 7 aprile 2003 . Execute string with MATLAB expression. cell array of strings. num2str int2str mat2str str2num sprintf sscanf A.18. letters of the alphabet.3 String operations. Introduzione a Matlab A. Convert number to string. binary string to decimal integer. Find token in string. Vertically concatenate strings. Character strings.18. strcat strvcat strcmp strncmp findstr strjust strmatch strrep strtok upper lower A.2 String tests. General. Convert Convert Convert Convert Convert Convert IEEE hexadecimal to double precision number. Find possible matches for string. Create cell array of strings from character array. base B string to decimal integer. True True True True for for for for character array (string). Convert string to number. Remove trailing blanks.5 Base number conversion.18. Concatenate strings. decimal integer to hexadecimal string. Convert string to uppercase.

Write formatted data to string. Read formatted data from file.Write binary data to file. Get file position indicator. fopen fclose A.Convert decimal integer to base B string. Comandi di Matlab dec2base . Test for end-of-file. Build full filename from parts.6 File name handling Root directory of MATLAB installation.19. .19. Path separator for this platform. Directory separator for this platform.Read string under format control. .19.19. fscanf fprintf fgetl fgets input A. fread fwrite A. Read line from file. .Close file.Open file.19 A.Read binary data from file. ferror feof fseek ftell frewind A.2 Binary file I/O. keep newline character.4 String conversion. discard newline character. Copyright 2003 Roberto Bucher 7 aprile 2003 matlabroot filesep pathsep mexext fullfile partialpath tempdir tempname 124 . . . File opening and closing. Set file position indicator. Get temporary file.19.5 File positioning. Inquire file error status. MEX filename extension for this platform. Partial pathnames. . Read line from file.1 File input/output.3 Formatted file I/O.19. Write formatted data to file. A. sprintf sscanf A.Introduzione a Matlab Appendice A. Get temporary directory. Rewind file. Prompt for user input.

20. .19. Send cursor home.String representation of date.9 Audio file import/export.Read image from graphics file. Copyright 2003 Roberto Bucher 125 calendar weekday eomday datetick 7 aprile 2003 .Current date as date string.20. Date formatted tick labels. Write spreadsheet (WK1) file. A. Write NeXT/SUN (". Calendar. .Return information about graphics file. imread imwrite imfinfo A.19.7 File import/export functions. .2 datenum datestr datevec A. Write Microsoft WAVE (". Save workspace to MAT-file. . Load workspace from MAT-file. .20 A.wav") sound file. Write ASCII delimited file. now date clock A. Read ASCII delimited file. Current date and time. Wait for user response. Read Microsoft WAVE (". Read spreadsheet (WK1) file. .1 Time and dates. load save dlmread dlmwrite wk1read wk1write A. .au") sound file. Basic functions. Read NeXT/SUN (". Day of week.20. End of month.A.au") sound file.20.Current date and time as date vector.8 Image file import/export.10 clc home disp input pause Command window I/O Clear command window. . auwrite auread wavwrite wavread A.Current date and time as date number. Time and dates.19.19.3 Date functions.wav") sound file.Serial date number.Write image to graphics file.Date components. Display array. Introduzione a Matlab A. . Prompt for user input.

True for cell array. Stopwatch timer. True for structures. Concatenate arrays. Deal inputs to outputs. cputime tic. cat ndims ndgrid permute ipermute shiftdim squeeze A. Number of dimensions. Convert numeric array into cell array. Display graphical depiction of cell array. Shift dimensions. cell celldisp cellplot num2cell deal cell2struct struct2cell iscell A.21. Elapsed time. Construct INLINE object. Create or convert to structure array. Wait in seconds.21.Introduzione a Matlab Appendice A. Data types (classes) Convert to double precision. Generate arrays for N-D functions and interpolation. Display cell array contents.21. Create character array (string). Get structure field contents. Set structure field contents. Permute array dimensions.2 Multi-dimensional array functions. double sparse char cell struct uint8 inline A. Convert cell array into structure array. Get structure field names.3 Cell array functions. Create sparse matrix. Convert to unsigned 8-bit integer. Comandi di Matlab A.21 A. Inverse permute array dimensions.21. Create or convert to structure array. Remove singleton dimensions. Remove structure field.4 Timing functions. True if field is in structure array.1 Data types and structures. Convert structure array into cell array. Copyright 2003 Roberto Bucher 7 aprile 2003 struct fieldnames getfield setfield rmfield isfield isstruct 126 . toc etime pause A. Create cell array.20.4 Structure functions. Create cell array. CPU time in seconds.

a. Copyright 2003 Roberto Bucher 127 ddeadv ddeexec 7 aprile 2003 . Convert object to structure array. Superior class relationship. .22. a(i)=b.\b. a/b. a{i}=b. a>=b.A. a<=b. Display class method names. Introduzione a Matlab A. a|b. a<b. [a b].field. -a. True for objects. a*b. Dynamic data exchange (DDE). and a. +a.1 Dynamic data exchange (DDE).Set up advisory link. Create object or return object class. a>b. True if object is a given class. .^b. [a.b]. a. Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable Overloadable method method method method method method method method method method method method method method method method method method method method method method method method method method method method method for for for for for for for for for for for for for for for for for for for for for for for for for for for for for a-b. and a.field=b. a.Send string for execution. a x(a). a+b.*b. a&b. a:b. a. a~=b. a{i}. a. DDE Client Functions. ~a. minus plus times mtimes mldivide mrdivide rdivide ldivide power mpower uminus uplus horzcat vertcat le lt gt ge eq ne not and or subsasgn subsref colon transpose ctranspose subsindex A.22. a^b.22 A.21. class struct methods isa isobject inferiorto superiorto A. a(i). a\b. Inferior class relationship./b.5 Object oriented programming functions.6 Overloadable operators.21. a==b.

2D Plots: Demonstrate XY plots in MATLAB. A.Introduzione a Matlab Appendice A. Zerofinding with fzero.08. e^pi or pi^e? MATLAB Benchmark. Release advisory link. Introduction to basic matrix operations in MATLAB. Try to predict the US population in the year 2000.23. Comandi di Matlab ddeinit ddepoke ddereq ddeterm ddeunadv - Initiate DDE conversation. funfuns fitdemo sunspots e2pi bench fftdemo census spline2d lotkademo quaddemo zerodemo fplotdemo quake A. demo A. Demonstrate complex function plots in MATLAB. Send data to application. . Computation of Reduced Row Echelon Form. Connectivity graph of the Buckminster Fuller geodesic dome. Loma Prieta Earthquake.23 A. Separators for a finite element mesh. Adaptive quadrature. 3D Plots: Demonstrate XYZ plots in MATLAB.23. Copyright 2003 Roberto Bucher 7 aprile 2003 graf2d graf2d2 grafcplx lorenz imageext 128 . Demonstrate functions that operate on other functions.1 Examples and demonstrations. FFT: the answer is 11. Introduction to matrix manipulation. Demonstrate the inversion of a matrix. Request data from application.3 MATLAB/Numerics. Finite difference Laplacian on various domains. and SIMULINK MATLAB/Matrices. what is the question? 2D visual solutions: Which is greater. Demonstrate effect of sparsity orderings. Nonlinear curve fit with simplex algorithm.4 MATLAB/Visualization. Plot a function. Use of the fast finite Fourier transform. Plot the orbit around the Lorenz chaotic attractor. MATLAB/Introduction. An example of ordinary differential equation solution.23. Demonstrate GINPUT and SPLINE in two dimensions. Toolboxes.2 intro inverter buckydem sparsity matmanip eigmovie rrefmovie delsqdemo sepdemo airfoil A. Symmetric eigenvalue movie.Browse demos for MATLAB.23. Terminate DDE conversation. Image colormaps: changing and rotating colormaps. Display sparse matrix from NASA airfoil.

23. Stiff problem. Stiff problem. Stiff problem with analytical solution due to Bui. Bessels equation of order 0 used by BESSLDEMO. used by STICDEMO. Introduction to the MATLAB language. Stiff problem. Demonstrate Handle Graphics for axes.A. odedemo a2ode a3ode b5ode ballode besslode brussode buiode chm6ode chm7ode chm9ode d1ode fem1ode fem2ode gearode hb1ode hb2ode hb3ode orbitode orbt2ode rigidode sticode vdpode A. Restricted 3 body problem used by ORBITDEMO. Equations of motion for a bouncing ball used by BALLDEMO. Copyright 2003 Roberto Bucher 129 knot quivdemo klein1 7 aprile 2003 . Stiff problem modelling a chemical reaction (Brusselator). Several views of the penny data.Tube surrounding a three-dimensional knot. linear with real eigenvalues (A3 of EHL). Demonstrate MATLABs image capability.23. Parameterizable van der Pol equation (stiff for large mu). . . Vibration movie: Vibrating L-shaped membrane. Stiff problem 2 of Hindmarsh and Byrne.23.Demonstrate the quiver function.7 Extras/Gallery. linear with real eigenvalues (A2 of EHL).6 MATLAB/ODE Suite. Non-stiff problem D5 of Hull et al. Stiff problem 1 of Hindmarsh and Byrne. xplang hndlgraf graf3d hndlaxis A.5 - Klein bottle demo. Examples and demonstrations. Stiff problem with a time-independent mass matrix. Stiff problem with a time-dependent mass matrix.23. Demo for the ODE suite integrators. Select color map. Stiff problem CHM6 from Enright and Hull. Demonstrate Handle Graphics for line plots. Demonstrate Handle Graphics for surface plots. linear with complex eigenvalues (B5 of EHL). Stiff problem 3 of Hindmarsh and Byrne. Euler equations of a rigid body without external forces.Construct a Klein bottle. Stiff problem CHM9 from Enright and Hull. Visualizing sound: Demonstrate MATLABs sound capability. Stiff problem due to Gear as quoted by van der Houwen. Maps of functions of a complex variable. Stiff problem. A spring-driven mass stuck to surface. Graphic demo of Fourier series expansion. nonlinear with real eigenvalues (D1 of EHL). . Stiff problem CHM7 from Enright and Hull. Introduzione a Matlab xpklein vibes xpsound imagedemo penny earthmap xfourier colormenu cplxdemo A. MATLAB/Language. View Earths topography.

11 MATLAB/Helper functions. Plot 12 modes of the L-shaped membrane.8 - Construct cruller. Visual perception of objects in motion. Construct spherical surface harmonic. Set up for command line demos. Generate and plot a surface of revolution. Minesweeper game. Great circle flight routes around the globe. Display the MATLAB L-shaped membrane logo. Display a matrix in a figure window. Soma cube xpbombs life bblwrap soma A. Traveling salesman problem. Alphabet transposition coder/decoder. . Colorful lines spinning through space. Comandi di Matlab cruller tori4 spharm2 modes logo A. Superquadrics plotting demonstration. Finds demos available for individual toolboxes.Introduzione a Matlab Appendice A. truss travel spinner xpquad codec xphide makevase wrldtrv logospin crulspin A. Spinning cruller movie. Animation of a bending bridge truss. clean up after command line demos.23. Bubblewrap.The graph of the Buckminster Fuller geodesic dome. Extras/Games. Conways Game of Life. Movie of The MathWorks logo spinning.23.10 General Demo/Helper functions. cmdlnwin cmdlnbgn cmdlnend finddemo helpfun pltmat A. Utility function for displaying help text conveniently. An Demo gateway routine for playing command line demos. . . bucky peaks membrane 130 Copyright 2003 Roberto Bucher 7 aprile 2003 .Generate MathWorkss logo.23.23.A sample function of two variables. Hoops: Construct four linked tori.9 Extras/Miscellaneous.

1 root Language CurrentFigure Diary: [ on | off ] DiaryFile Echo: [ on | off ] ErrorMessage Format: [ short | long | shortE | longE | shortG | longG | hex | bank | + | rational ] FormatSpacing: [ loose | compact ] PointerLocation Profile: [ on | off ] ProfileFile ProfileCount ProfileInterval ScreenDepth ShowHiddenHandles: [ on | {off} ] Units: [ inches | centimeters | normalized | points | pixels ] AutomaticFileUpdates: [ on | off ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData 7 aprile 2003 Copyright 2003 Roberto Bucher 131 .Appendice B Propriet` a degli oggetti di Matlab B.

Introduzione a Matlab Appendice B. Propriet` a degli oggetti di Matlab Visible: [ {on} | off ] B.2 figure BackingStore: [ {on} | off ] CloseRequestFcn Color Colormap CurrentAxes CurrentObject CurrentPoint Dithermap DithermapMode: [ auto | {manual} ] IntegerHandle: [ {on} | off ] InvertHardcopy: [ {on} | off ] KeyPressFcn MenuBar: [ none | {figure} ] MinColormap Name NextPlot: [ {add} | replace | replacechildren ] NumberTitle: [ {on} | off ] PaperUnits: [ {inches} | centimeters | normalized | points ] PaperOrientation: [ {portrait} | landscape ] PaperPosition PaperPositionMode: [ auto | {manual} ] PaperType: [ {usletter} | uslegal | a3 | a4letter | a5 | b4 | tabloid ] Pointer: [ crosshair | fullcrosshair | {arrow} | ibeam | watch | topl | topr | botl | botr | left | top | right | bottom | circle | cross | fleur | custom ] PointerShapeCData PointerShapeHotSpot Position Renderer: [ {painters} | zbuffer ] RendererMode: [ {auto} | manual ] Resize: [ {on} | off ] ResizeFcn ShareColors: [ {on} | off ] Units: [ inches | centimeters | normalized | points | {pixels} ] WindowButtonDownFcn WindowButtonMotionFcn WindowButtonUpFcn WindowStyle: [ {normal} | modal ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn 132 Copyright 2003 Roberto Bucher 7 aprile 2003 .

| -.| {:} | -.3.| -.3 axes AmbientLightColor Box: [ on | {off} ] CameraPosition CameraPositionMode: [ {auto} | manual ] CameraTarget CameraTargetMode: [ {auto} | manual ] CameraUpVector CameraUpVectorMode: [ {auto} | manual ] CameraViewAngle CameraViewAngleMode: [ {auto} | manual ] CLim CLimMode: [ {auto} | manual ] Color ColorOrder DataAspectRatio DataAspectRatioMode: [ {auto} | manual ] DrawMode: [ {normal} | fast ] FontAngle: [ {normal} | italic | oblique ] FontName FontSize FontUnits: [ inches | centimeters | normalized | {points} | pixels ] FontWeight: [ light | {normal} | demi | bold ] GridLineStyle: [ .B. | none ] NextPlot: [ add | {replace} | replacechildren ] PlotBoxAspectRatio PlotBoxAspectRatioMode: [ {auto} | manual ] Projection: [ {orthographic} | perspective ] Position TickLength TickDir: [ {in} | out ] 7 aprile 2003 Copyright 2003 Roberto Bucher 133 .| {:} | -. | none ] Layer: [ top | {bottom} ] LineStyleOrder LineWidth MinorGridLineStyle: [ . axes Introduzione a Matlab DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.

Introduzione a Matlab Appendice B. Propriet` a degli oggetti di Matlab TickDirMode: [ {auto} | manual ] Title Units: [ inches | centimeters | {normalized} | points | pixels ] View XColor XDir: [ {normal} | reverse ] XGrid: [ on | {off} ] XLabel XAxisLocation: [ top | {bottom} ] XLim XLimMode: [ {auto} | manual ] XScale: [ {linear} | log ] XTick XTickLabel XTickLabelMode: [ {auto} | manual ] XTickMode: [ {auto} | manual ] YColor YDir: [ {normal} | reverse ] YGrid: [ on | {off} ] YLabel YAxisLocation: [ {left} | right ] YLim YLimMode: [ {auto} | manual ] YScale: [ {linear} | log ] YTick YTickLabel YTickLabelMode: [ {auto} | manual ] YTickMode: [ {auto} | manual ] ZColor ZDir: [ {normal} | reverse ] ZGrid: [ on | {off} ] ZLabel ZLim ZLimMode: [ {auto} | manual ] ZScale: [ {linear} | log ] ZTick ZTickLabel ZTickLabelMode: [ {auto} | manual ] ZTickMode: [ {auto} | manual ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] 134 Copyright 2003 Roberto Bucher 7 aprile 2003 .

4. XData YData ZData ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B. | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ] MarkerSize MarkerEdgeColor: [ none | {auto} ] -or.{a ColorSpec}. line Introduzione a Matlab Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.a ColorSpec.4 line Color EraseMode: [ {normal} | background | xor | none ] LineStyle: [ {-} | -. MarkerFaceColor: [ {none} | auto ] -or.a ColorSpec. | none ] LineWidth Marker: [ + | o | * | .5 patch CData CDataMapping: [ direct | {scaled} ] FaceVertexCData EdgeColor: [ none | flat | interp ] -or. Faces 7 aprile 2003 Copyright 2003 Roberto Bucher 135 .B.{a ColorSpec}. EraseMode: [ {normal} | background | xor | none ] FaceColor: [ none | flat | interp ] -or.| : | -.

| none ] LineWidth Marker: [ + | o | * | .a ColorSpec. MarkerFaceColor: [ {none} | auto | flat ] -or.{a ColorSpec}. Propriet` a degli oggetti di Matlab LineStyle: [ {-} | -.6 surface CData CDataMapping: [ direct | {scaled} ] EdgeColor: [ none | flat | interp ] -or.a ColorSpec. MarkerSize Vertices XData YData ZData FaceLighting: [ none | {flat} | gouraud | phong ] EdgeLighting: [ {none} | flat | gouraud | phong ] BackFaceLighting: [ unlit | lit | {reverselit} ] AmbientStrength DiffuseStrength SpecularStrength SpecularExponent SpecularColorReflectance VertexNormals NormalMode: [ {auto} | manual ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B. EraseMode: [ {normal} | background | xor | none ] FaceColor: [ none | {flat} | interp | texturemap ] -or.Introduzione a Matlab Appendice B.| : | -.a ColorSpec. | x | square | diamond | v | ^ | > | < | pentagram | hexagram | {none} ] MarkerEdgeColor: [ none | {auto} | flat ] -or. | none ] LineWidth Marker: [ + | o | * | . LineStyle: [ {-} | -. | x | square | diamond | v | ^ | > | < | 136 Copyright 2003 Roberto Bucher 7 aprile 2003 .| : | -.

B.a ColorSpec. image Introduzione a Matlab pentagram | hexagram | {none} ] MarkerEdgeColor: [ none | {auto} | flat ] -or. MarkerSize MeshStyle: [ {both} | row | column ] XData YData ZData FaceLighting: [ none | {flat} | gouraud | phong ] EdgeLighting: [ {none} | flat | gouraud | phong ] BackFaceLighting: [ unlit | lit | {reverselit} ] AmbientStrength DiffuseStrength SpecularStrength SpecularExponent SpecularColorReflectance VertexNormals NormalMode: [ {auto} | manual ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.a ColorSpec.7.7 image CData CDataMapping: [ {direct} | scaled ] EraseMode: [ {normal} | background | xor | none ] XData YData ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn 7 aprile 2003 Copyright 2003 Roberto Bucher 137 . MarkerFaceColor: [ {none} | auto | flat ] -or.

Introduzione a Matlab Appendice B.9 light Position Color 138 Copyright 2003 Roberto Bucher 7 aprile 2003 . Propriet` a degli oggetti di Matlab BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.8 text Color EraseMode: [ {normal} | background | xor | none ] Editing: [ on | off ] FontAngle: [ {normal} | italic | oblique ] FontName FontSize FontUnits: [ inches | centimeters | normalized | {points} | pixels ] FontWeight: [ light | {normal} | demi | bold ] HorizontalAlignment: [ {left} | center | right ] Position Rotation String Units: [ inches | centimeters | normalized | points | pixels | {data} ] Interpreter: [ {tex} | none ] VerticalAlignment: [ top | cap | {middle} | baseline | bottom ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.

10 uicontrol BackgroundColor Callback Enable: [ {on} | off | inactive ] FontAngle: [ {normal} | italic | oblique ] FontName FontSize FontUnits: [ inches | centimeters | normalized | {points} | pixels ] FontWeight: [ light | {normal} | demi | bold ] ForegroundColor HorizontalAlignment: [ left | {center} | right ] ListboxTop Max Min Position String Style: [ {pushbutton} | radiobutton | checkbox | edit | text | slider | frame | listbox | popupmenu ] SliderStep Units: [ inches | centimeters | normalized | points | {pixels} ] Value ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] 7 aprile 2003 Copyright 2003 Roberto Bucher 139 .B.10. uicontrol Introduzione a Matlab Style: [ {infinite} | local ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.

11 uimenu Accelerator Callback Checked: [ on | {off} ] Enable: [ {on} | off ] ForegroundColor Label Position Separator: [ on | {off} ] ButtonDownFcn Children Clipping: [ {on} | off ] CreateFcn DeleteFcn BusyAction: [ {queue} | cancel ] HandleVisibility: [ {on} | callback | off ] Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] 140 Copyright 2003 Roberto Bucher 7 aprile 2003 .Introduzione a Matlab Appendice B. Propriet` a degli oggetti di Matlab Interruptible: [ {on} | off ] Parent Selected: [ on | off ] SelectionHighlight: [ {on} | off ] Tag UserData Visible: [ {on} | off ] B.

Sign up to vote on this title
UsefulNot useful