introduzione a matlab parte 2 - unina.it a matlab... · e’ l’area in cui sono digitati ......

Post on 12-Oct-2020

5 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

3

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

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

>> 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

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'.

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

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

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

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

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

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

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

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

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;

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

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

>>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

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

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

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

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

top related