Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >>...

23
Introduzione a MATLAB Università degli Studi di Napoli Federico II CdL Ing. Elettrica Corso di Laboratorio di Circuiti Elettrici Dr. Carlo Petrarca Dipartimento di Ingegneria Elettrica e Tecnologie dell’Informazione Università di Napoli FEDERICO II 1 Lezione n.2

Transcript of Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >>...

Page 1: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Introduzione a MATLAB

Università degli Studi di Napoli Federico II

CdL Ing. Elettrica

Corso di Laboratorio di Circuiti Elettrici

Dr. Carlo Petrarca

Dipartimento di Ingegneria Elettrica e

Tecnologie dell’Informazione

Università di Napoli FEDERICO II

1

Lezione n.2

Page 2: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Command window. E’ l’area in cui sono digitati

dati e comandi.

Workspace. E’ la zona in cui sono visualizzate

tutte le variabili definite dall’operatore

Command History. E’ l’area in cui sono riportati

tutti i comandi digitati nella Command Window

Current Directory. Mostra i file contenuti nella

directory di lavoro corrente

L’ambiente MATLAB

2

Page 3: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

3

Page 4: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Matlab è un ambiente di lavoro basato

principalmente su comandi in linea. Nella

Command window è possibile digitare dati e

comandi. Premendo il tasto INVIO è inoltre

possibile visualizzare il risultato di una

elaborazione.

In MATLAB non esistono dichiarazioni di tipi o di

dimensioni. Quando si dichiara o modifica una

variabile, MATLAB alloca direttamente la

memoria necessaria.

L’ambiente MATLAB

4

Page 5: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Per assegnare il valore 2 alla variabile x basta digitare al prompt (>>)

la seguente riga di comando

>> x=2

>> x=2

x =

2

Creare e modificare variabili

e premere subito dopo il tasto INVIO

Le variabili sono case sensitive: x è diversa da X

I nomi delle variabili devono cominciare con una lettera

5

La variabile x così creata può essere usata per qualsiasi altra operazione

Page 6: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

>> y=x*5

y =

10

Assegniamo alla variabile y il valore x*5

6

Per le operazioni elementari di addizione, sottrazione, divisione,

moltiplicazione, elevazione a potenza si usano i simboli “+” “-” “/”

“* ” “^”

Operazioni elementari

ATTENZIONE !

E’ necessario sempre rispettare l’ordine con il quale si assegna il valore ad

una variabile. La variabile deve essere sempre a sinistra del segno “=”

>> x*7=z ERRATO >> z=x*7ESATTO

Page 7: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Sommiamo le due variabili :

>> x+y

ans =

12

Se si omette di specificare la variabile per il risultato, allora

MATLAB crea una variabile ans a cui assegna il valore richiesto.

7

MATLAB segnala sempre la presenza di un eventuale errore

>> x*7=z

??? x*7=z

|

Error: The expression to the left of the equals sign is not a valid target for an assignment

>> x=z

??? Undefined function or variable ‘z'.

Page 8: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

8

assegniamo alla variabile w il valore x+y

>> w=x+y

w =

12

calcoliamo il quadrato di w: w2

>> w^2

ans =

144

ATTENZIONE !

se indichiamo una nuova variabile con un simbolo già utilizzato, il valore

precedentemente archiviato verrà definitivamente perso

>> x=x^3

x =

8

In questo caso la variabile x assume il nuovo valore 8

e non più il valore 2 precedentemente assegnato

Page 9: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

MATLAB automaticamente stampa l’output di ogni comando: per eliminare

questa risposta è necessario aggiungere “;” al termine del comando

>> c

c =

18

>> c=x+y;

Per visualizzare il valore di una variabile, basta digitarla al prompt (>>) e

premere INVIO

9

Le variabili definite sono elencate nella Workspace

E’ anche possibile visualizzarle tutte nella Command Window digitando il

comando who oppure il comando whos

>> who

Your variables are:

w x y

whos

Name Size Bytes Class Attributes

w 1x1 8 double

x 1x1 8 double

y 1x1 8 double

Page 10: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

10

Esistono variabili predefinite di sistema. Eccone alcune

• pi (pi greca)

• inf (infinito)

• NaN (Not a Number) ad esempio 0/0

• i e j (Unità immaginaria = )1

Per cancellare una o più variabili si usa il comando clear

Con il comando clear all si cancellano tutte le variabili

Il comando clc serve per ripulire la Command Window, ma non cancella

le variabili

Il comando save serve per salvare le variabili nel file Matlab.mat

Il comando load serve per richiamare le variabili contenute in Matlab.mat

>> clear y >> clear all >> clc>> clear x c w >> save >> load

Page 11: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

11

>> clear x c w cancella le sole variabili x c w

>> save salva tutte le variabili nel file matlab.mat

>> save (‘Dati.mat’, ‘x’, ‘c’) salva le variabili x c nel file Dati.mat

>> load carica le variabili dal file matlab.mat

>> load(‘Dati.mat’) carica le variabili dal file Dati.mat

>> clear all cancella tutte le variabili

>> load(‘Dati.mat’,’x’) carica la sola variabile x dal file Dati.mat

Page 12: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

12

ATTENZIONE !

MATLAB possiede un ordine predefinito per lo svolgimento di operazioni

Ordine di priorità: 1) funzioni

2) operazioni tra parentesi;

3) elevamento a potenza;

4) prodotti e divisioni;

5) somme e sottrazioni

A parità di priorità le operazioni si eseguono nell’ordine da sinistra verso destra

>> A=(5-3) ^2*4

A =

16

>> A=5-3^2*4

A =

-31

Esempi:

4*235A

4*235A4*35 2A

>> A=(5-3)^(2*4)

A =

256

4*352

A

>> A=5-3^(2*4)

A =

-6556

Page 13: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

13

Nota bene:

Per indicare la priorità delle operazioni si usano solo le parentesi tonde “ ( ”, “ ) ”

Le parentesi quadre o graffe hanno altri usi in MATLAB

4

63

5*347*2 3

2

3A

Calcola l’espressione:

>> (2^3*(7+4))-(3^(2/3)*((5/(3+6))-4))

??? (2^3*(7+4))-(3^(2/3)*((5/(3+6))-4)

|

Error: Expression or statement is incorrect—possibly unbalanced (, {, or [.

Un eventuale errore di sintassi (es. manca una parentesi) è segnalato:

Risultato:

95.1647

Page 14: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

E’ possibile scrivere su un’unica riga tutte le operazioni da svolgere.

>> b=7;h=10;A=b*h/2;c=sqrt((b/2)^2+h^2);P=2*c+b;

14

Esempio: calcolare l’area e il perimetro del triangolo in figura

h

b

ccDati:

b=7 cm

h=10 cm

Page 15: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

I tasti di direzione sulla tastiera sono molto utili

15

Serve per visualizzare al prompt, in sequenza, tutti i comandi digitati

Serve per scorrere in verso opposto tutte i comandi già digitati

Serve per scorrere verso sinistra i comandi già digitati

Serve per scorrere verso destra i comandi già digitati

Page 16: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Esempio dell’uso dei tasti freccia

>> b=7;h=10;A=b*h/2;c=sqrt((b/2)^2+h^2);P=2*c+b;

16

Esempio: calcolare l’area e il perimetro del triangolo in figura

h

b

ccDati:

b= 9 cm

h=12 cm

Con il tasto freccia su ci appare l’espressione già scritta

Con il tasto freccia sinistra ci muoviamo per cambiare i dati

>> b=9;h=12;A=b*h/2;c=sqrt((b/2)^2+h^2);P=2*c+b;

Page 17: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

17

Esercizi

Eseguire le seguenti operazioni in cui: a=5; b=12; c=8.4; d=7.9

dcba *

a

c

d

ba

2

c

a

ba

3

2

2

35/2

4* cba

c

17

Risultato: 8.50

Risultato: 3.0035

Risultato: 30.424

Risultato: -894.6171

Page 18: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

18

Svolgimento esercizi>> a=5; b=12; c=8.4; d=7.9;

>> (a+b)*(c-d)

ans =

8.5000

>> ((a^2+b)/d)-(c/a)

ans =

3.0035

>> a^2+((b/a)^3-c)

ans =

30.4240

>> (((c^(2/5))/a)^3)-(b*(4+c^2))

ans =

-894.6171

18

Page 19: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

>>x=2;

>> size(x)

ans =

1 1

a è una matrice composta da una riga e da tre colonne

a è un vettore riga di lunghezza (length) 3:

>> a=[1 5 6]

a =

1 5 6

>> size(a)

ans =

1 3

Uno scalare è trattato da MATLAB come una matrice con

dimensione (size) (1,1), formata cioè da una riga e una colonna

E’ possibile creare un vettore riga nel seguente modo:

19

numero di righe numero di colonne

651a

2x

>> length(a)

ans =

3

lunghezza del vettore

Page 20: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

E’ possibile creare un vettore colonna terminando ogni riga con “;”

>> b=[7; 5; 8; 1;]

b =

7

5

8

1

>> size(b)

ans =

4 1

Il vettore b è una matrice con 4 righe ed una colonna

Il vettore b è una vettore colonna di lunghezza 4

20

1

8

5

7

b

>> length(b)

ans =

4

Page 21: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

L’accesso agli elementi di un vettore avviene tramite indici:

21

>> a=[5 12.3 8 23 4.4]

a =

5 12.3 8 23 4

>> a(2)

ans =

12.3

>> a(end)

ans =

4.4

>> a(4)

ans =

23

elemento di posto 2 elemento di posto 4

>> a(length(a))

ans =

4.4

>> a(5)

ans =

4.4

ultimo elemento del vettore a

ATTENZIONE !

Gli indici devono essere numeri interi

Page 22: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

Anno Accademico 2011-2012

Introduzione a MATLAB parte 1

22

Esercizi

1. Costruire il vettore riga A= (12, 3.4, 54, 13.5, 77, 8, 9)

2. Ricavare il numero N di elementi di A

3. Calcolare il prodotto P1 = N*A(2)

4. Calcolare il prodotto P2 tra il primo e l’ultimo elemento del vettore A

5. Calcolare la differenza D=P2-P1

6. Calcolare il risultato R1 della seguente operazione

7. Calcolare il risultato R2 di

8. Calcolare il risultato RT di

)3(

1

A

PD

4

*12

12

A

N

PP

PD

3

32

)4(2

5

412

1

AA

N

A

N

PP

P

22

Page 23: Introduzione a Matlab parte 2 - unina.it a Matlab... · E’ l’area in cui sono digitati ... >> A=5-3^2*4 A =-31 Esempi: A 5 3 2*4 A 5 32 *4 A 5 3 2*4 >> A=(5-3)^(2*4) A = 256 A

23

Svolgimento eserciziA=[12 3.4 54 13.5 77 8 9];

>> N=length(A)

N =

7

>> P1=N*A(2)

P1 =

23.8000

>> P2=A(1)*A(end)

P2 =

108

>> D=P2-P1

D =

84.2000

>> R1=(D-P1)/A(3)

R1 =

1.1185

>> R2=(((D-P1)^2)/(P2-P1))*N/A(4)

R2 =

22.4660

>> RT=((((P1^(2/3))/(P2-P1))+N/A(4))/(((N+5)/(A(2)+A(4)))))^3

RT =

0.6554

23