Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il...

61
Laboratorio di MatLab Algebra lineare e Geometria Alessandro Benfenati Ph.D. Student Departments of Mathematics - University of Ferrara [email protected] 1 / 61

Transcript of Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il...

Page 1: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Laboratorio di MatLab

Algebra lineare e Geometria

Alessandro Benfenati

Ph.D. StudentDepartments of Mathematics - University of Ferrara

[email protected]

1 / 61

Page 2: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Sommario

1 Organizzazione delle lezioni

2 Introduzione a MatlabNavigazioneWorkspace, Command HistoryShellEditor

3 Le variabiliVariabili numericheVettoriMatrici

4 M-filesScriptFunctions

5 Istruzioni di controllo e cicliIstruzioni di controlloCicli

6 MiscellaneaVarie ed evenutali

2 / 61

Page 3: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Organizzazione delle lezioni

Organizzazione

Date delle lezioni

07/04/2014 : 1 lezione

14/04/2014 : 2 lezione

28/04/2014 : 3 lezione Si prevede una grande affluenza

05/05/2014 : 4 lezione

12/05/2014 : esempio di esame

19/05/2014 : esame

Aula: Informatica GrandeOrario : 16.30-19.00Homepage del corso:http://dmi.unife.it/it/didattica/dottorandi/alessandro-benfenati

3 / 61

Page 4: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab

Che cos’e Matlab?

Matlab (Matrix Laboratory) e un ambiente integrato per il calcolo scientifico,basato sul calcolo matriciale; consente di eseguire un’istruzione o comandoper volta, tali comandi permettono di definire variabili, valutare formule,disegnare grafici 2D e 3D a schermo...

E inoltre un linguaggio di programmazione intrerpretato (non compilato), dallasintassi facile ed intuitiva (anche se a prima vista puo non sembrare). Lanotazione in cui i dati vengono inseriti e le soluzioni vengono espresse e unanotazione di tipo matematico.

Matlab e un ambiente per studiare soluzioni numeriche di problemi di tipofisico, economico, statistico, ingegneristico, in molto campi delle scienzeapplicate. Per aiutare gli utenti nella soluzione di questi problemi, sono staticreati vari Toolbox, ovverossia libreria con funzioni gia implementate peraffrontare le tematiche particolari (ad esempio, lo Statistic Toolbox e statocreato per effettuare analisi statistiche di dati.)Per maggiori informazioni, visitare http:\\www.mathworks.com.

4 / 61

Page 5: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab

Alternative a MatLab

Nel caso si disponesse di grosse disponibilita finanziarie, e possibile acquistareMatLab, con un costo che va dai 2000 e(versione base) ai circa 84000 e.

Aternativa

Octave e un software open source, disponibile per ambiente Windows, Linux eMac; e una valida alternativa a Matlab, compatibile al 98.3% con i codiciMatLab. E scaricabile dal sito

http://www.gnu.org/software/octave/

In ambiente linux (Ubuntu), Octave e installabile con il comando

sudo apt-get install octave3.2

Octave non e dotato di interfaccia grafica come MatLab (si utilizza in modalitatestuale, da shell di comando), ma e possibile installare il pacchetto QtOctaveche dota Octave di un aspetto simile a quello di MatLab.Altra alternativa a MatLab e SciLab:

http://www.scilab.org/

che non ha lo stesso livello di compatibilita con MatLab posseduto da Octave.

5 / 61

Page 6: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab

Ambiente MatLab

Ogni finestra puo essere estratta (unlocked), integrata (locked), massimizzata,minimizzata, chiusa..

6 / 61

Page 7: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab

Ambiente MatLab

Navigazionenavigazione fra le cartelle

Editor di testoscrivere m.files, functions, etc.

Mandare in esecuzione il programma

WorkspaceVariabili correnti, con info

Shell

Commandhistory

Ogni finestra puo essere estratta (unlocked), integrata (locked), massimizzata,minimizzata, chiusa..

7 / 61

Page 8: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab Navigazione

Navigazione

Nel menu di navigazione e possibile controllare in quale directory si stalavorando.

Questo e importante in quanto se si vanno a caricare dati o funzioni (cheverranno spiegate a breve) non presenti nel path corrente MatLab restituisce unmessaggio di errore.

In questa finestra e possibile selezionare la cartella di lavoro, aprire m-files,caricare dati salvati mediante il doppio clic del mouse.

Alcuni comandi da utilizzare nella shell di comando per la navigazione sono iseguenti:

cd name_dir entra nella cartella name_dir;

cd .. sale di un livello;

load name_file.mat carica dati salvati nel file name_file.mat;

edit name_script.m apre nella finestra dell’editor il file name_script.m.

8 / 61

Page 9: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab Workspace, Command History

Workspace & Command History

Nel Workspace viene visualizzato l’elenco delle variabili nel seguente modo:

name_var dimension,type val_min val_max

Viene visualizzato il nome della variabile, la dimensione, il tipo, il valoremassimo e il valore minimo.

Esempio

A <5x6 double> 0.23 5.5

B <1x6 double> 0 1

Cliccando due volte su di una variabile nel workspace, si apre una finestra similead un foglio elettronico contenente i valori della variabile. In questo ambiente epossibile modificare la variabile presa in esame.

Nella Command History son presenti tutti i comandi digitati. Cliccando duevolte su di un comando presente nell’elenco tale comando viene eseguito.

9 / 61

Page 10: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab Shell

Shell

La Command Line o Shell e l’ambiente con cui si interagisce effettivamentecon MatLab. Sulla linea di comando si definiscono le variabili, si richiamanofunzioni, si eseguono script...

>> 3+2ans =

5>>

Si puo utilizzare MatLab come unacalcolatrice...

>> sin (3/2* pi)+log (25)- tan (2)ans =

5>>

...anche di alto livello!

Per eseguire un comando si digita tale comando sulla tastiera e poi si preme ê.Per eseguire piu comandi sulla stessa linea si separano con una virgola:

>> sin (3/2* pi), cos (-99)ans =

5>>

vengono visualizzati i risultati in ordine.

ans e la variabile temporanea in cui MatLab memorizza il risultato dell’ultimaistruzione digitata. Viene sovrascritta ogni volta!

10 / 61

Page 11: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab Shell

Shell: alcuni comandi utili

>> pwd Directory di lavoro.

>> help sin Il comando help apre una breve descri-zione della funzione scritta subito do-po il comando. Digitando ad esempiohelp sin nella shell di comando appa-rira una breve descrizione della funzionesin, il suo utilizzo e alcuni esempi.

>> doc>> doc cos

Il comando doc apre il browswer con ilmanuale di MatLab. Tale manuale e informato ipertestuale, quindi di facile uti-lizzo. Digitando doc name_fun si apre lafinestra del browser direttamente alla pa-gina che spiega l’utilizzo della funzionename_fun.

>> cd CODES>> cd ..

Il comando cd (Change Directory) servea cambiare directory di lavoro da shell dicomando: cd CODES fa in modo di en-trare nella cartella CODES. Lo stesso co-mando utilizzato con .. sale di un livellonelle cartelle.

11 / 61

Page 12: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Introduzione a Matlab Editor

Editor

I programmi MatLab possono raggiungere facilmente le centinaia di righe dicodice, quindi e necessario poter disporre di file sorgente in cui memorizzare leistruzioni da eseguire. Nell’Editor e possibile salvare un file di testo conestensione .m in cui scrivere tutte le istruzioni necessarie per risolvere unproblema. L’editor di MatLab e un comune editor di testo con solo alcunefunzioni aggiuntive comode per poter lavorare con questo linguaggio diprogrammazione.

Nell’editor son presente utili strumenti di debug e di esecuzione del programma,utili quando sono presenti errori difficili da trovare.

Una volta scritte questa serie di istruzioni, possiamo richiamare quest’insiemedi istruzioni semplicemente digitando il nome del file nella shell: in questomodo le istruzioni scritte verranno eseguite in sequenza, una alla volta.

Per poter utilizzare un m-file, dobbiamo trovarci nella stessa directory doveesso e salvato!

12 / 61

Page 13: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Variabili numeriche

Variabili Numeriche

Digitando in successione due comandi >>3+2 e >>7+3 il risultato vienememorizzato nella variabile ans, che memorizza solo il risultato dell’ultimaoperazione.Se volessimo memorizzare questi risultati dobbiamo dichiarare una variabile:

>>a= 3+2a=

5

Il risultato viene memorizzato nellavariabile a e viene anche visualizzato.

>>a= 3+2;Il risultato viene memorizzato nellavariabile a ma non viene visualizzato.

>>a= 3+2;>>a= 10+3;

In questo modo il valore assegnato ada viene sovrascritto: in questa caso ilvalore memorizzato in a e 13.

La procedura per memorizzare un valore in una variabile e la seguente:var_name = var_value ê

Il punto e virgola e facoltativo.

13 / 61

Page 14: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Variabili numeriche

Variabili Numeriche

MatLab e case sensitive: la variabile M e diversa dalla variabile m. Inoltre, ilnome di una variabile non puo iniziare con una cifra. Alcuni esempi di nomivalidi di variabili sono: A_min, Err3, fun_obj4.

variabile NULL

Utilizzando la seguente istruzione:

>> x = [];

si crea una variabile vuota (NULL) che puo contenere dati di qualsiasi tipo.

14 / 61

Page 15: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Variabili numeriche

Variabili Numeriche

Repetita iuvant!

ans e la variabile temporanea in cui MatLab memorizza il risultato dell’ultimaistruzione digitata. Viene sovrascritta ogni volta!

>> sin (23)ans =

-0.8462>> 5+6ans =

11>> 0ans =

0>> log (abs (asin(cos (pi ))))ans =

0.4516>> 1+1ans =

2>> ansans =

2

Scrivendo varie operazioni una di segui-to all’altra, il risultato che rimane inmemoria e l’ultimo eseguito.

15 / 61

Page 16: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: creazione

MatLab e ottimizzato per il calcolo matriciale, tutti i dati vengono visti comematrici.

I vettori sono particolari matrici.

>> v = [12 pi 0];>> v = [12, pi , 0];

Dichiarazioni di vettori riga: utilizzare ono la virgola e ininfluente.

>> w = [9; 42; pi /2];>> w = [942pi /2];

Dichiarazioni di vettori colonna: anda-re a capo con ê o utilizzare il punto evirgola e la medesima cosa.

>> w = [9; 42; pi /2];>> w(2)ans =

42

Per accedere agli elementi di un vet-tore, si digita il nome del vettore efra parentesi tonde l’indice dell’elementodesiderato.

16 / 61

Page 17: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: creazione

Alcuni comandi particolari:

>> b = 3:15;

Questo comando crea il vettore b i cuielementi sono equispaziati di 1.b � p1, 2, 3, . . . , 15qT .

>> c = 0:0.1:2;

Questo comando crea il vettore c i cuielementi sono equispaziati di passo 0.1.c � p0, 0.1, 0.2, . . . , 1.8, 1.9, 2qT .

>> d = linspace (5 ,7 ,101);

Questo comando crea il vettore d di101 elementi, il primo elemento e 5 el’ultimo e 7.d � p5, 5.02, 5.04, . . . , 6.96, 6.98, 7.00qT .Il passo viene calcolato au-tomaticamente, e dato dadi � di�1.

>> e = [17;42];>> e’ans =

17 42

L’apostrofo calcola il trasposto di un

vettore.

17 / 61

Page 18: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: Operazioni con i vettori

Somma, differenza e prodotto di vettori ricalcano le definizioni classichematematiche.

>> a = [2; 3];>> b = [4; 6];>> c = a+bc =

69

La somma (differenza) e calcolata com-ponente per componente. Prestare at-

tenzione alle dimensioni dei vettori: non

e possibile sommare vettori di dimensioni

differenti.

>> a = [2; 3];>> b = [4; 6];>> d = a’*bd =

26>> dot (a,b)ans =

26

Il prodotto scalare   a, b ¡� aTb �

°

iaibi e implementato in MatLab. In

alternativa, si puo utilizzare la funzio-ne nativa dot.Anche in questo caso le

dimensioni dei vettori devono essere le

stesse.

Le operazioni di divisione, moltiplicazione ed elevemento a potenza non sonodefinite per i vettori, ma e possibile utilizzare le operazioni punto: .*, ./.

18 / 61

Page 19: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: operazioni con i vettori

Addizione e sottrazione non han bisogno del punto.

>> v = [5 ,8];>> w = [25 ,16];>> w./vans =

5 2

>> w.\vans =

0.2000 0.5000

>> w.*vans =

125 128

>> v.^2ans =

25 64

>> a = [2 3];>> v.^aans =

25 512

In questo modo viene eseguita l’opera-zione componente per componente.Nel caso dell’elevamente a potenza, ognielemento del vettore viene elevato al-l’esponente indicato: v.^2 = p52, 82q.Se si utilizza un vettore come esponen-te, quello che viene eseguito e v.^a =p52, 83q.

19 / 61

Page 20: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: funzioni sui vettori

>> v = linspace (10 ,15 ,50);>> sum (v)ans =

625

La funzione sum calcola la somma deglielementi del suo argomento.

>> prod(v)ans =

4.9307 e+54

La funzione prod calcola il prodottodegli elementi del suo argomento.

>> numel(v)ans =

50

La funzione numel calcola il numerodegli elementi del suo argomento.

>> length (v)ans =

50

La funzione length restituisce la lun-ghezza del vettore.

>> size(v)ans =

1 50

La funzione size restituisce le dimensio-ni del suo argomento. Quando verran-no utilizzate le matrici le differenze fraqueste ultime tre funzioni saranno piuchiare.

20 / 61

Page 21: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: funzioni sui vettori

>> v = rand(10 ,1);>> max (v)ans =

0.9706>> min (v)ans =

0.1419

La funzione rand(n,m) genera n�m nu-meri distribuiti uniformemente nell’inter-vallo r0, 1s La funzione max (min) resti-tuisce il massimo (minimo) del vettorein input.

>> [mx , idx ] = max (v)mx =

0.9706idx =

2>> [mn , idx ] = min (v)mn =

0.1419idx =

6

Chiamando le funzioni che cercano ilmassimo e il minimo di un vettore nelmodo indicato, si trovano contempora-neamente e memorizzati in due variabilidiverse il valore massimo (o minimo) delvettore e l’indice della posizione

>> mean(v)ans =

0.6602>> std (v)ans =

0.3308

mean calcola la media del vettore; std lasua deviazione standard.

21 / 61

Page 22: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: funzioni sui vettori & operatori di confronto

>> w = 9:0.2:15;>> find(w <10)ans =

1 2 3 4 5

La funzione find(logic_expr) resti-tuisce gli indici per cui logic_expr everificata.

Operatori di Confronto

Gli operatori di confronto in MatLab sono

== confronto

< maggiore

> minore

>= maggiore o uguale

<= minore o uguale

~= diverso (per digitare la tilde in ambiente windows: ALT+0126. Inambiente Linux: ALTGR+ı).

22 / 61

Page 23: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: vettori e costanti

>> v = [4 ,5];>> v + 2ans =

6 7>> v / 2ans =

2.0000 2.5000>> v * 2ans =

8 10

Se si eseguono operazioni fra vettori enumeri, MatLab automaticamente trat-ta il numero in questione come un vet-tore in cui ogni componente e pari allacostante digitata.

Somma

Ad esempio, il comando >>v + 2 corrisponde a digitare >>v + [2,2]. Questovale per qualsiasi operazione.

23 / 61

Page 24: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori, esempio: calcolo del centro di massa

−1 0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

7

8

A

B

C

Si richiede il calcolo del centro di massadei punti A,B,C. La formula per n puntie la seguente:

M �

1

n

n

i

xi ,1

n

n

i

yi

>>A = [2.0; 3.0 ];>>B = [7.0; 4.5 ];>>C = [4.9; 6.7 ];>>>> M = (A + B + C) / 3;

24 / 61

Page 25: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori, esempio: calcolo del centro di massa

−1 0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

7

8

A

B

C

MSi richiede il calcolo del centro di massadei punti A,B,C. La formula per n puntie la seguente:

M �

1

n

n

i

xi ,1

n

n

i

yi

>>A = [2.0; 3.0 ];>>B = [7.0; 4.5 ];>>C = [4.9; 6.7 ];>>>> M = (A + B + C) / 3;

In questo caso abbiamo sfruttato il fattoche MatLab esegue la somma di vetto-ri componente per componente e che ladivisione per come e implementata vieneeseguita componente per componente

25 / 61

Page 26: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori, esempio: calcolo del centro di massa

−1 0 1 2 3 4 5 6 7 8 9 10−1

0

1

2

3

4

5

6

7

8

A

B

C

Mnew

Nel caso caso in cui i punti abbianomassa diversa (quindi pesano in mododiverso) la formula diventa

Mnew �

1

Mtot

n

i

mixi ,1

Mtot

n

i

miyi

con

Mtot �

n

i

mi

e dove mi e la massa del punto i�esimo.

>> A = [2.0; 3.0 ];>> B = [7.0; 4.5 ];>> C = [4.9; 6.7 ];>> mass = [10 3 1]; % la componente i-esima si

% riferisce all ’i-esimo punto.% Per es , mass(1) consiste nella% massa del punto A.

>> M = (mass (1)*A + mass (2)*B + mass (3)*C) / sum (mass);

26 / 61

Page 27: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: funzioni sui vettori

La norma euclidea di un vettore x � px1, x2, . . . , xnqT e definita come:

}x}2 �

g

f

f

e

n

i�1

x2i

Il comando MatLab per calcolare la norma di un vettore e

>> x = 1:0.5:5;>> norm(x)ans =

9.7980>> sqrt(sum (x.^2))ans =

9.7980

Utilizzando tale comando, viene calcolata la norma euclidea. Esistono altri tipidi norma:}x}1 �

°

i|xi |

>>norm(x,1)

}x}p ��

°

i|xi |

p�

1p

>>norm(x,p)

}x}8

� maxi |xi |

>>norm(x,Inf )

27 / 61

Page 28: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori: funzioni sui vettori

In MatLab sono definite tutte le funzioni elementari: sin, cos, log, . . . Per unelenco completo, digitare nella shell di comando help elfun.

>> x = pi/3;>> sin (x)ans =

0.8660>> log (x)ans =

0.0461

>> x = 0:pi /2:3/2* pi>> max (x)ans =

4.7124>> min (x)ans =

0

Funzioni con argomenti vettoriali

Una funzione che ha come input un vettore restituisce come output un vettoredella stessa lunghezza, le cui componenti sono i valori della funzione calcolatisugli elementi del vettore di input.

>> x = 0:pi /2:3/2* pi;>> y = sin (x)y =

0 1.0000 0.0000 -1.0000

28 / 61

Page 29: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Vettori

Vettori, esempio: calcolo del lavoro di una forza

Un forza ~F � 4~i � 5~j � 2~k viene applicata al corpo puntiforme A situatonell’origine degli assi. Tale forza produce uno spostamento ~s � 3~i � 10~j � 4~k .L’angolo θ fra i vettori ~F ed ~s e di 0.7669 radianti. Calcolare il lavoro dellaforza ~F .Ricordando che il lavoro W di un forza e dato dal prodotto scalare

W �  F , s ¡� FTs � }F }2}s}2 cospθq

possiamo utilizzare le seguenti istruzioni:

>> F = [4;5; -2];>> s = [3; 10; 4];>> W1 = dot (F,s)W1 =

54>> W2 = F’*sW2 =

54>> W3 = norm(F)* norm(s)*cos (0.7669)

W3 =

54.0049

x

y

z

~F

~s

θ

29 / 61

Page 30: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici

Come gia detto, l’oggetto principale su cui MatLab lavora e la matrice. Percreare una matrice A come la seguente si utilizza la sintassi studiata per ivettori:

A �

4 5 π

0 6 21 0 e

>> A = [4 5 pi; 0 6 2; 1 0 exp (1)]

A =

4.0000 5.0000 3.14160 6.0000 2.0000

1.0000 0 2.7183>> A(2,3) % Accesso all ’elemento di riga 2 colonna 3ans =

2

Carattere jolly :

I due punti : permettono di accedere a piu elementi contemporaneamente dellamatrice: permettono di selezione un’intera riga, un’intera colonna o unasottomatrice.

30 / 61

Page 31: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici

A �

2 5 π 56 20 6 2 0 2π1 0 e 3 59 0 3 5 2

Æ

Æ

>> A(:,1) % seleziona solo la prima colonnaans =

2019

>> A(2,:) % seleziona solo la seconda rigaans =

0.0000 6.0000 2.0000 0.0000 3.1415

>> A(3:4 ,3:5) % seleziona gli elementi dalla 3aans = % alla 4a riga e dalla 3a alla 5a colonna

2.7183 3.0000 5.00003.0000 5.0000 2.0000

31 / 61

Page 32: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici

A �

2 5 π 56 20 6 2 0 2π1 0 e 3 59 0 3 5 2

Æ

Æ

>> A(:,1) % seleziona solo la prima colonnaans =

2019

>> A(2,:) % seleziona solo la seconda rigaans =

0.0000 6.0000 2.0000 0.0000 3.1415

>> A(3:4 ,3:5) % seleziona gli elementi dalla 3aans = % alla 4a riga e dalla 3a alla 5a colonna

2.7183 3.0000 5.00003.0000 5.0000 2.0000

32 / 61

Page 33: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici

A �

2 5 π 56 20 6 2 0 2π1 0 e 3 59 0 3 5 2

Æ

Æ

>> A(:,1) % seleziona solo la prima colonnaans =

2019

>> A(2,:) % seleziona solo la seconda rigaans =

0.0000 6.0000 2.0000 0.0000 3.1415

>> A(3:4 ,3:5) % seleziona gli elementi dalla 3aans = % alla 4a riga e dalla 3a alla 5a colonna

2.7183 3.0000 5.00003.0000 5.0000 2.0000

33 / 61

Page 34: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: creazione

Si possono creare matrici riempiendole con vettori:

>> v = [2;4];>> w = [0;1];>> t = [1;3];>> A = [v,w,t]A =

2 0 14 1 3

>> B = [v;w;t]B =

240113

Vengono creat tre vettori colonna di di-mensioni 2x1; per creare la matrice A siaffiancano i tre vettori, utilizzando il ; ,inmodo da avere una matrice 2x3. Inve-ce, utilizzando semplicemente , si met-tono uno sotto l’altro e si crea un nuovovettore di dimesione 6x1.

>> v = [2;4];>> w = [0;0;1];>> A = [v,w]Error using horzcatCAT arguments dimensions are not consistent .

Prestare attenzione alle dimensioni

dei vettori!

34 / 61

Page 35: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: creazione

Si possono creare matrici riempiendole con altre matrici:

>> A = [ 2 5 4; 6 9 0];>> B = [ 9 9 9; 2 5 4];>> C = [A;B]C =

2 5 46 9 09 9 92 5 4

La matrice C e stata creata ponendo lamatrice B sotto la matrice A: e comun-que necessario prestare attenzione alledimensioni.

Allocazione dinamica della memoria

MatLab e in grado di creare spazio (memoria) dinamicamente al momento delbisogno.

>> D = [1 5; 5 6]D =

1 55 6

>> D(1,4) = 9D =

1 5 0 95 6 0 0

La matrice D era di dimensione 2 � 2,ma inizializzando l’elemento di postop1, 4q MatLab ha creato dinamicamen-te la memoria per gli elementi mancanti,inizializzandoli a 0.

35 / 61

Page 36: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: creazione di matrici speciali

>> eye (3)ans =

1 0 00 1 00 0 1

Il comando eye(n) crea la matriceidentita di ordine n.

>> zeros (3)ans =

0 0 00 0 00 0 0

>> ones (2)ans =

1 11 1

Il comando zeros(n) (ones(n)) creauna matrice di ordine n con ognielemento inizializzato a 0 (1).

>> ones (3,7)ans =

1 1 1 1 1 1 11 1 1 1 1 1 11 1 1 1 1 1 1

36 / 61

Page 37: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: esempio

Avendo a disposizione la matrice A di dimensioni 3� 3, si vuole creare lamatrice strutturata nel seguente modo:

I3 03 �I303 A 03

�I3 03 I3

Si puo scrivere un unico comando Matlab per creare tale matrice:

>>[eye (3), zeros (3), -eye (3)zeros (3) A zeros (3)-eye (3) zeros (3) eye (3)];

37 / 61

Page 38: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: operazioni

>> A = [ 2 5 4; 6 9 0];>> B = [ 9 9 9; 2 5 4];>> A+Bans =

11 14 138 14 4

>> C = A-BC =

-7 -4 -54 4 -4

La somma fra matrici e definita nel solitomodo, componente per componente.

>> D = [2 6 ; 5 6; 0 0]D =

2 65 60 0

>> P = A*DP =

29 4257 90

Il prodotto e definito per matrici di di-mensioni opportune: se A P R

2�3,D P

R3�2 allora P � AD P R

2�2.

P11 �  A1,D1¡

�  p2, 5, 4q, p2, 5, 0q ¡

� 2 � 2� 5 � 5� 4 � 0 �

� 29

38 / 61

Page 39: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: operazioni

>> A*BError using *Inner matrix dimensions must agree.

Il prodotto deve essere fatto fra

matrici di dimensioni opportune.

>> A\Bans =

0 0 00.2222 0.5556 0.44441.9722 1.5556 1.6944

>> A/Bans =

-0.0000 1.00000.3810 0.4286

A\B � A�1B, mentre A/B� AB�1.Queste due funzioni verranno ripresequando si tratteranno i sistemi lineari.

>> A’ans =

2 65 94 0

>> P^2ans =

3235 49986783 10494

A’� At .L’operazione A^p, con A matrice e p P

N� e possibile solo quando A e quadrata.

39 / 61

Page 40: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: operazioni punto

Come per i vettori, le operazioni punto sono definite anche per le matrici.

>> A = [ 2 5 4; 6 9 0];>> B = [ 9 9 9; 2 5 4];>> E = A.*BE =

18 45 3612 45 0

E21 � A21 � B21

>> F = A./BF =

0.2222 0.5556 0.44443.0000 1.8000 0

F21 � A21{B21

>> G = A.^3G =

8 125 64216 729 0

G11 � A311

40 / 61

Page 41: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: confronto fra matrici

E possibile confrontare gli elementi di due matrici.

>> A = [ 2 5 4; 6 9 0];>> B = [ 9 9 9; 2 5 4];>> A==Bans =

0 0 00 0 0

>> A>Bans =

0 0 01 1 0

>> A~=Bans =

1 1 11 1 1

>> A<=Bans =

1 1 10 0 1

Il confronto viene fatto elemento per ele-mento.

Il risultato e una matrice i cui elementi

sono valori logici: 1 sta per TRUE e 0

per FALSE.

41 / 61

Page 42: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: matrici simmetriche ed antisimmetriche

Def.

Una matrice A si dice simmetrica quando A � At ; si dice antisimmetrica

quando A � �At .

Remark

Data una matrice A qualsiasi, la matrice 12pA� At

q risulta essere simmetrica.

La matrice 12pA� At

q risulta essere antisimmetrica.

Ad esempio:

A �

4 3 2 13 0 9 82 9 2 51 8 5 1

Æ

Æ

B �

0 3 2 1�3 0 9 8�2 �9 0 5�1 �8 �5 0

Æ

Æ

A e simmetrica, mentre B e antisimmetrica.

42 / 61

Page 43: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: matrici simmetriche ed antisimmetriche

Per creare matrici simmetriche ed antisimmetriche in codice MatLab si puoscrivere:

>> A = rand (3); % genera una matrice 3x3 con elementi% random fra 0 e 1.

>> B = 0.5*( A+A ’);>> B == B’ % verifica se la matrice e’ simmetricaans =

1 1 11 1 11 1 1

>> C = 0.5*(A-A ’);>> C == -C’ % verifica se la matrice e’ antisimmetricaans =

1 1 11 1 11 1 1

43 / 61

Page 44: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: prodotto matrice-vettore

Il prodotto matrice-vettore e definito nel solito modo, e possibile eseguirloquando le dimensioni sono opportune: se A P R

n�m e x P Rm, allora il prodotto

Ax e ben definito e Ax P Rn.

>> AA =

2 5 46 9 0

>> x = [2; 3; 0];>> b = A*xb =

1939

b1 �  A1, x ¡� 2 � 2� 5 � 3� 4 � 0 � 19

>> y = [5;6];>> A*yError using *Inner matrix dimensions must agree.

Occhio alle dimensioni.

44 / 61

Page 45: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: prodotto matrice-vettore. Esempio

Siano dati la matrice A e il vettore P:

A �

0.7071 �0.70710.7071 0.7071

P �

23

−5 −4 −3 −2 −1 0 1 2 3 4 5−5

−4

−3

−2

−1

0

1

2

3

4

5

PQ Il vettore Q mostrato nella figura a lato

in rosso e dato dal prodotto di A per ilvettore P.

45 / 61

Page 46: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Le variabili Matrici

Matrici: prodotto matrice-vettore. Esempio

Siano dati la matrice A e il vettore P:

A �

0.7071 �0.70710.7071 0.7071

P �

23

−5 −4 −3 −2 −1 0 1 2 3 4 5−5

−4

−3

−2

−1

0

1

2

3

4

5

PQ

φ

Il vettore Q mostrato nella figura a latoin rosso e dato dal prodotto di A per ilvettore P. L’azione di A sul vettore P e

stata di una rotazione attorno all’origine

di un angolo φ �

π

4.

A �

cospφq � sinpφqsinpφq cospφq

46 / 61

Page 47: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

M-files Script

Script

Supponiamo di voler disegnare il grafico di sinpxq � x nell’intervallo r0, 2πs. Icomandi sono i seguenti.

>> x = 0:0.1:2* pi;>> y = sin (x)+x;>> plot(x,y)

Inizializzo il vettore x fra 0 e 2π con pas-so 0.1, calcolo y sfruttando la sintassivettoriale di MatLab e infine con il co-mando plot creo la finestra grafica incui mi viene visualizzato il grafico.

Se invece di dover plottare il grafico nell’intervallo r0, 2πs ora si dovesseplottarlo nell’intervallo r0, 10s, allora di dovrebbe ripartire dall’inizio e scriveretutte le istruzioni

M-file

E invece no! Ci basta salvare la lista delle istruzioni in quello che vienechiamato M-file. Una volta scritta questa lista e salvato il file, possiamorichiamare questa serie di comandi semplicemente scrivendo il nome del M-filenella shell di comando.

Questo tipo di M-file prende il nome di script.

47 / 61

Page 48: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

M-files Script

Script: directory, workspace e variabili

Alcune accortezze:

Per eseguire uno script, e necessario essere nella directory dove tale scripte salvato

uno script puo accedere a tutte le variabile del workspace corrente,modificandole. Inoltre, tutte le varibili create nello script rimarranno inmemoria.

uno script puo chiamare un altro script

48 / 61

Page 49: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

M-files Script

Script: directory, workspace e variabili

Alcune accortezze:

per rendere effettive le modifiche fatte ad uno script, e necessario salvarle.Quando le modifiche fatte non sono state salvate, viene eseguita l’ultimaversione dello script. Si nota che non si e effettuato il salvataggio dellemodifiche perche nella finestra dell’editor accanto al nome del file appareun asterisco.

per avviare uno script, si puo digitare il nome del file nella shell oppurecliccare sul bottone a forma di play sulla barra di modifica dell’editor: inquesto modo, si salvano le modifiche e si eseguono le istruzioni contenutenello script.

Le prime tre righe del primo script che viene chiamato dovrebbe contenerele seguenti istruzioni:

clear all: pulisce il workspaceclose all: chiude tutte le finestre aperteclc: pulisce la shell di comando

49 / 61

Page 50: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

M-files Functions

Functions

Le functions sono particolari M-files che prendono alcuni parametri in input ene restituiscono altri in output, senza modificare quelli in entrata. Ad esempio,e possibile creare una funzione che presi in input a, b, c restituisca come outputle radici dell’equazione

ax2� bx � c � 0

quando esse esistono.

function [x1 , x2] = roots_2deg (a, b, c)

Delta = b^2 - 4*a*c; % calcolo del discriminante

if Delta < 0 % se minore di 0, allora esco e non faccio niente% Comando per scrivere a schermofprintf (’Soluzione non esistente nei reali .\n’);x1 = []; % restituisce nientex2 = [];return % esco dalla funzione

else% se possibile calcolo le due soluzionix1 = (-b+sqrt(Delta ))/(2* a);x2 = (-b-sqrt(Delta ))/(2* a);

end

50 / 61

Page 51: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

M-files Functions

Functions

In questo esempio, le variabili a,b, c non vengono modificate in alcun modo:quello che viene fatto e un passaggio per valore, non per indirizzo. Mentreviene eseguita una function, essa si crea un workspace suo in cui lavorare, e unoworkspace temporaneo.

>> gg = 2;>> r = 56;>> tr = 9;

>>[ a,b] = roots_2deg (gg ,r,tr)a =

-0.1616b =

-27.8384

Nel mio workspace, le variabili hanno inomi gg, r e tr, mentre dentro alla miafunzione hanno i nomi a, b e c. Inoltre,gli output nel mio workspace principa-le vengono chiamati a e b mentre nelworkspace della funzione sono x1 e x2.Le variabili a,b,c,x1,x2 esistono sola-

mente per il tempo di esecuzione dellafunzione. I valori di x1 e x2 vengonosalvati nelle variabili a e b.

51 / 61

Page 52: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Istruzioni di controllo e cicli Istruzioni di controllo

Istruzione if then else

L’istruzione if then else ha la seguente sintassi:

if condition1istructions_1

elseistructions_2

end

Se condition_1 e soddisfatta, allora laserie di istruzioni instruction_1 vie-ne eseguita, altrimenti viene eseguita lalista di istruzioni instructions_2.

if condition1istructions_1

elseif condition2istructions_2

...elseif condition_n

istructions_notherwise

istructions_oend

Se condition_1 e soddisfatta, allora laserie di istruzioni instruction_1 vie-ne eseguita, se condition_2 e sod-disfatta, allora la serie di istruzioniinstruction_2 viene eseguita e cosıvia. Se nessuna delle precedenti esoddisfatta, allora vengono eseguite leistruzioni in instructions_o.

else ed otherwise non sono sempre necessarie, e possibile anche ometterle.

52 / 61

Page 53: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Istruzioni di controllo e cicli Istruzioni di controllo

Istruzione switch

A volte e piu comodo utilizzare l’istruzione switch se sono presenti molti casi dacontrollare:

switch varcase number_1

instruction_1case number_2

instructions_2

otherwiseinstructions_o

end

equivale a usare elseif.

53 / 61

Page 54: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Istruzioni di controllo e cicli Cicli

Ciclo for

Il cilco for esegue una serie di istruzioni, sempre le stesse. Ad esempio

v = 1:10;for i = 1:10

v(i) = v(i)-i^2;end

il ciclo scritto percorre tutto il vettore v e ad ogni elemento sostituiscel’elemento stesso diminuitio di i2.

v =0 -2 -6 -12 -20 -30 -42 -56 -72 -90

Ovviamente, e comodo da utilizzare all’interno di uno script, non da linea dicomando.

SINTASSI VETTORIALE

Per eseguire calcoli fra matrici e vettori, evitare il piu possibile i cicli for:MatLab e creato per eseguire velocemente operazioni fra matrici e vettori inmaniera automatica, utilizzando i cicli for si rischia di dover aspettare i risultatimolto piu tempo del dovuto.

54 / 61

Page 55: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Istruzioni di controllo e cicli Cicli

Ciclo while

Il ciclo while esegue una serie di istruzioni finche una condizione e soddisfatta.

while cond_1instructions

end

E necessario sempre assicurarsi che il ciclo while possa avere termine:

a = 1;while a < 5

b = a+1;end

Il ciclo soprascritto viene eseguito all’infinito.

55 / 61

Page 56: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Miscellanea Varie ed evenutali

Shell

>> format short>> format short e>> format short g>> format long>> format long e>> format long g>> format rat

Il comando format cambia il modo di vi-sualizzare un numero: il formato short

visualizza meno cifre, long molte di piu.Il formato rat permette la visalizzazionedei numeri razionali come frazioni.

>> pi>> Nan>> Inf>> realmin>> realmax

Matlab possiede alcune costanti, comepi (π), i (i ,l’unita immaginaria); Nan

significa not a number, e il risultatodi operazioni come 0

0o 8

8

; Inf e unoggetto che rappresenta sul calcolatore8.

56 / 61

Page 57: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Miscellanea Varie ed evenutali

Visualizzazione

>> disp(x)Serve a visualizzare sullo schermo ilvalore della variaibile fra parentesi.

>> fprintf (’Messaggio che viene stampato sulla shell .\n’);>> fprintf (’Il valore di a: %f’,a)

Il comando fprintf e utilizzato quando e necessario visualzzare messaggi sullashell.E anche possibile far apparire il valore delle variabile con il comando fprintf:e necessario specificare il tipo di dato da visualizzare utilizzando il % con unalettera che identifichi il tipo di dato; dopo il messaggio che deve apparire sulloschermo, dopo la virgola si mette il nome della variabile che deve apparire.

57 / 61

Page 58: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Miscellanea Varie ed evenutali

Cronometro e workspace

>> tic...>> toc

Il comando tic inizializza il cronometro,toc invece lo ferma.

>> whos

Genera nella shell un elenco delle variabi-li, con le dimensioni, il tipo, lo spazio dimemoria utilizzato e altre informazioniutili.

>> exit>> quit

Comandi per uscire da MatLab.

58 / 61

Page 59: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Miscellanea Varie ed evenutali

Matrice ed operazioni

>> A = fix (50* rand (3))A =

5 17 3724 29 1247 11 25

>> max (A)ans =

47 29 37>> min (A)ans =

5 11 12>> sum (A)ans =

76 57 74>> sum (A,2)ans =

596583

>> size(A)ans =

3 3>> numel(A)ans =

9>> inv (A)ans =

Le operazioni di massimo e di minimosulle matrici vengono fatte sulle colon-

ne. Anche l’operazione di somma se-gue lo stesso destino, se non si specificaaltrimenti. Consultare sempre l’help diMatLab per avere maggiori informazionisull’utilizzo delle funzioni.

59 / 61

Page 60: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Miscellanea Varie ed evenutali

Salvataggio e caricamento

>> save dati.mat>> load dati

Il comando save salva l’intero workspa-

ce nel file dati.mat. Per caricarlo in unsecondo momento, si utilizza il comandoload.

>> x = [1, 7, 9];>> y = 500;>> save dati.mat x

Utilizzando il comando save come mo-strato, si salva nel file dati.mat solo lavariabile x.

>> help elfun Visualizza l’elenco delle funzioni elemen-tari implementate.

60 / 61

Page 61: Laboratorio di MatLab - dm.unife.it · In ambiente linux (Ubuntu), Octave ´e installabile con il comando sudo apt-get install octave3.2 Octave non ´e dotato di interfaccia grafica

Miscellanea Varie ed evenutali

Operatori logici

Gli operatori logici in MatLab sono:

& o &&: AND

| o ||: OR

~ : NOT

61 / 61