introduzione a matlab® bozza...

30
21 Matlab sta per Matrix Laboratory ed è un ambiente interattivo e un linguaggio di calcolo tecnico di alto livello per lo sviluppo di algoritmi, la rappresentazione grafica dei dati, l'analisi dei dati e il calcolo numerico. Matlab include vari moduli aggiuntivi, chiamati Toolbox, per applicazioni specifiche. (Signal Processing Toolbox, Image Processing Toolbox, etc…) Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio MATLAB, è possibile programmare e sviluppare algoritmi più rapidamente rispetto ai linguaggi tradizionali, in quanto non è necessario eseguire attività di gestione codice a basso livello come la dichiarazione di variabili, la specificazione dei tipi di dati e l'assegnazione della memoria. In molti casi MATLAB elimina la necessità di utilizzare loop. Introduzione a MATLAB® BOZZA BOZZA BOZZA di Fabio Bozzoli

Upload: hoangthu

Post on 17-Feb-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

21

Matlab sta per Matrix Laboratory ed è un ambiente interattivo e un linguaggio di calcolo tecnico di alto livello per lo sviluppo di algoritmi, la rappresentazione grafica dei dati, l'analisi dei dati e il calcolo numerico.

Matlab include vari moduli aggiuntivi, chiamati Toolbox, per applicazioni specifiche. (Signal Processing Toolbox, Image Processing Toolbox, etc…)

Il linguaggio MATLAB supporta operazioni su vettori e matrici.

Con il linguaggio MATLAB, è possibile programmare e sviluppare algoritmi più rapidamente rispetto ai linguaggi tradizionali, in quanto non è necessario eseguire attività di gestione codice a basso livello come la dichiarazione di variabili, la specificazione dei tipi di dati e l'assegnazione della memoria. In molti casi MATLAB elimina la necessità di utilizzare loop.

Introduzione a MATLAB® BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 2: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

22

Funzioni principali

Linguaggio di alto livello per il calcolo tecnico Ambiente di sviluppo per la gestione di codice, file e dati Funzioni matematiche per l'algebra lineare, la statistica, l'analisi di Fourier, il filtraggio, l'ottimizzazione e l'integrazione numerica Funzioni grafiche in 2D e 3D per la rappresentazione grafica deidati Strumenti per la creazione di interfacce grafiche personalizzateFunzioni per integrare gli algoritmi basati su MATLAB con linguaggi e applicazioni esterni come C/C++, Fortran, etc…

IntroduzioneBOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 3: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

23

Analisi dei datiMATLAB supporta l'intero processo di analisi dei dati, dall'acquisizione da database e periferiche esterni fino alla pre-elaborazione, visualizzazione, analisi numerica e produzione dei risultati in un formato adatto a presentazioni. (Interpolazione e decimazione , estrazione di sezioni di dati, scalatura e calcolo della media, correlazione, analisi di Fourier e filtraggio, funzioni statistiche di base e curve fitting)

Accesso ai datiMATLAB è un'efficace piattaforma per accedere ai dati da file, altre applicazioni, database e periferiche esterne. È possibile leggere i dati dai formati di file più diffusi, ad esempio Microsoft Excel, testi in formato ASCII o file binari, file video, audio e immagini. È’ possibile acquisire dati dalle periferiche hardware, ad esempio dalla scheda audio o dalla porta seriale di un computer. (Data Acquisition Toolbox, Instrument Control Toolbox)

IntroduzioneBOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 4: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

24

Introduzione

Visualizzazione dei dati• In MATLAB sono disponibili

tutte le funzioni grafiche necessarie per visualizzare i dati tecnico-scientifici. Sono inclusi: funzioni grafiche in 2-D e 3-D, funzioni per la rappresentazione volumetrica 3-D, strumenti per la creazione interattiva dei diagrammi e la possibilità di esportare i risultati in tutti i formati grafici più diffusi.

Creazione ed editinginterattivo dei grafici

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 5: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

25

IntroduzioneCalcolo numerico

MATLAB comprende le funzioni matematiche, statistiche e tecniche per supportare tutte le operazioni più comuni di naturascientifica e tecnica. Tali funzioni costituiscono la base del linguaggio MATLAB. Le funzioni matematiche principali utilizzanole librerie di algebra lineare LAPACK e BLAS e la libreria dellaTrasformata Discreta di Fourier FFT.

Manipolazione delle matrici e algebra lineare Polinomi e interpolazioni Analisi di Fourier e filtraggio Analisi dei dati e funzioni statistiche Ottimizzazione e integrazione numerica Equazioni differenziali ordinarie (ODE) Equazioni differenziali parziali (PDE) Operazioni su matrici

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 6: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

26

Introduzione

MATLAB offre agli utenti una serie di funzioni per documentare econdividere il proprio lavoro. Il codice MATLAB può essere integrato con altri linguaggi e altre applicazioni, consentendo così di utilizzare le applicazioni e gli algoritmi MATLAB come programmi standalone o come moduli software. MATLAB presenta funzioni per integrare con le proprie applicazioni il codice C e C++, il codice FortranRilascio di applicazioniÈ possibile creare un algoritmo in MATLAB e distribuirlo ad altri utenti MATLAB sotto forma di codice M. Con il MATLAB Compiler (disponibile separatamente), l'algoritmo creato dall'utente può essere rilasciato come applicazione standalone oppure come modulo software da inserire nel progetto destinato agli utenti che non dispongono di MATLAB.

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 7: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

27

Avviare una sessione di lavoroAvviando Matlab si apre una sessione di lavoro e il prompt >> indica che il programma è pronto a ricevere istruzioni.

Es. Digitando 7/10 e INVIO si ottiene» 7/10

ans =0.7000

Matlab assegna la risposta ad una variabile temporanea (ans).E’ possibile memorizzare il risultato anche in un’altra variabileEs. r=7/10

r =0.7000

Non e’ necessario né dimensionare né dichiarare il tipo di variabileIl segno = è l’operatore di assegnazione o sostituzione, da non confondere con l’operatore di uguaglianza (==)I nomi delle variabili devono iniziare con una lettera e non possono essere più lunghi di 31 caratteri. Possono contenere numeri e il carattere “underscore”. Matlab è case sensitive.

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 8: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

28

Matlab conserva l’ultimo valore di una variabile finchè non chiudete la sessione di lavoro o non cancellate espressamente il valore della variabile.Alcuni comandi per gestire una sessione di lavoro:

who elenca le variabili che si trovano in memoria.whos elenca le variabili, le loro dimensioni e indica se possiedono parti immaginarie non nulle.pwd visualizza il percorso della directory corrente.dir visualizza il contenuto della directory corrente.cd consente di cambiare directory.clear elimina tutte le variabili dalla memoria.Il punto e vigola al termine dell’istruzione consente di non visualizzare il risultato dell’operazione.

Avviare una sessione di lavoroBOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 9: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

29

Array e variabiliMATLAB utilizza la rappresentazione in virgola mobile in singola (32 bits) o doppia precisione (64 bits), in accordo a lo standard IEEE 754 . Il default è la doppia precisione, ma è possibile convertire un double in singola precisione.Uno dei punti di forza di Matlab è la capacità di raccogliere molti numeriin strutture chiamate array (o matrici) come se fossero una solavariabile. Un array numerico è una raccolta ordinata di numeri. Vettore: array monodimensionaleMatrice: array a due o più dimensioni. Per inseririe un vettore riga:r=[2,4,10]

Per inseririe un vettore colonna:s=[2;4;6]

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 10: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

30

Array e variabiliPer inserire una matrice 3x3 digitate:Es. A=[1 2 3;4 5 6;7 8 9]A =1 2 34 5 67 8 9Per riferirsi agli elementi di un array si usano le parentesi rotonde e gliindici di riga e di colonna separati da virgole.A(1,2) è l’elemento a1,2

Per riferirsi ad intere righe o colonne si usano i due punti.A(:,2) indentifica tutti gli elementi nella 2° colonna di A

Per unire vettori a matriciA=[1,2,3;4,5,6;7,8,9];V=[10,11,12];A=[A;v];

Operazioni importanti: trasposta, rotazione, ribaltamento

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 11: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

31

EsercizioPartendo dalle matrici .

⎥⎥⎥

⎢⎢⎢

⎡=

987654321

A[ ]121110=B

⎥⎥⎥

⎢⎢⎢

⎡=

151413

C [ ]000=D

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 12: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

32

EsercizioOttenete le matrici .

⎥⎥⎥

⎢⎢⎢

⎡=

151296314118521310741

1R ⎥⎦

⎤⎢⎣

⎡=

121198

2R

⎥⎦

⎤⎢⎣

⎡=

8754

3R⎥⎦

⎤⎢⎣

⎡=

5487

4R

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 13: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

33

File .m

In Matlab è possibile operare in due modi differenti:In modalità interattivaEseguire un programma di matlab registrato in un file di tipo m o m-file.

Esistono due categorie di M-file: file script e file di funzione.Con il comando edit si apre l’editor di Matlab.

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 14: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

34

Stringhe Un testo in Matlab viene interpretato come un vettore di caratteri. Le stringhe di caratteri vanno racchiuse tra apici

A=‘stringa di testo’Le stringhe di testo possono essere visualizzate con il comando dispIn un m-file l’introduzione interattiva di dati può ottenersi con la funzione

inputN=input(‘Numero di discretizzazioni ….’)

nome=input(‘ Come ti chiami?’,’s’)

Altre funzioni per la gestione delle stringhe di testo:Int2str, str2num, strncmp…..

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 15: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

35

Altri tipi di datiCelle (Cell array)Strutture

CelleLe celle sono array che possono contenere elementi di tipo diverso tra

loro. Possono essere create direttamente per assegnamento o utilizzando il comando cell. L’indicizzazione ad una cella avviene tramite le parentesi graffe.

Es. A=rand(2,2) c={A, det(A), inv(A)}

L’uso principale previsto è quello relativo alla gestione delle stringhe.

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 16: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

36

StruttureSono arrays multidimensionali a cui si accede tramite la definizioni di

campi.Es. studente.nome=‘Marco’studente.cognome=‘Bianchi’studente.ccl=‘Meccanica’studente.anno=‘quinto’Un intero elemento può essere aggiunto con studente(2)=struct(‘nome’,’Paolo’,’cognome’,’Verdi’,’ccl’,’Elettronica’,’anno’,

’quarto’)……………

Altri tipi di datiBOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 17: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

37

Operazioni con le matriciGli elementi sono separati da spazi o virgole, le righe dal punto e virgola entro parentesi quadre.

Matlab consente di effettuare operazioni su matrici in modo moltosemplice.

Es. B= A’ calcola la trasposta della matrice A e memorizza il risultato nella matrice B.

» B=A'B =1 4 72 5 83 6 9

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 18: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

38

Operatori matematici

Osservate il risultato delle seguenti operazioni:A+2, A-2, A*2, A/2C=A+B, D=A*B, E=A/B, F=A.*B, G=A./B, H=A.^2

Operazioni aritmetiche scalari^ Elevazione a potenza* Moltiplicazione/ Divisione a destra\ Divisione a sinistra+ Addizione- Sottrazione

OrdineOrdine di di precedenzaprecedenza standard standard delladella programmazioneprogrammazione

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 19: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

39

Operazioni con le matrici (elemento per elemento)+ Somma array scalare- Sottrazione array scalare+ Somma di matrici- Sottrazione di matrici.* Moltiplicazione di matrici elemento per elemento./ Divisione destra di matrici elemento per elemento.\ Divisione sinistra di matrici elemento per elemento.^ Elevamento a potenza elemento per elemento* Moltiplicazione di matrici riga per colonna/ Divisione destra\ Divisione sinistra o inversa

Operatori matematiciBOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 20: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

40

Divisione matricialeSe A è una matrice quadrata invertibile e B è un vettore

X=A\B è la soluzione di AX=BX=B/A è la soluzione di XA=B

Quindi B/A=(A’\B’)’Se la matrice è mxn vi sono 2 casim>n sistema sovradeterminato (soluzione ai minimi quadrati)m<n sistema sottodeterminato (soluzione fondamentale con al più m componenti non nulle)

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 21: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

41

Divisione matriciale

[ ] [ ]1935326

21 −=⎥⎦

⎤⎢⎣

⎡xx

Metodo matriciale2x1+9x2=53x1-4x2=7Ax=bx=A\b (DIVISIONE SINISTRA)

Se il sistema è scritto nella forma Xc=Dx=D/c (DIVISIONE DESTRA)

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡⎥⎦

⎤⎢⎣

⎡− 7

543

92

2

1

xx

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 22: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

42

Operatori relazionali= Assegnazione== Uguaglianza< > <= >= Minore, maggiore minore o uguale, maggiore o uguale& AND logico| OR logico∼ NOT logicoXor OR esclusivo

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 23: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

43

Istruzioni condizionali e cicli

if else, sintassi: if, condizione sulle variabili, istruzioni, else o elseif, condizione sulle variabili, istruzioni,... end

Es. x=10;if x>=0y=sqrt(x)end

While, sintassi: while, condizione sulle variabili, istruzioni end.A=zeros(4,4);k=1;while k<=4

A(k,k)=1,k=k+1;

endFor, sintassi: for, variabile=espressione, istruzioni, end.

A=zeros(4,4);for k=1:4

A(k,k)=1,end

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 24: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

44

Switch case, sintassi: switch(condizione) case ‘valore’istruzione otherwise endswitch (value)

case {1,3,5,7,9}disp(‘Il valore è dispari')case {2,4,6,8,10}disp(‘Il valore è pari')otherwise

disp(‘Il valore è al di fuoridell‘intervallo.)

end

Istruzioni condizionali e cicliBOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 25: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

45

Esercizio

Data l’equazione di secondo grado

ax^2+bx+c=0

Utilizzando la struttura if elseif end creare un programma al fine di individuare, noti i coefficienti a,b e c, le caratteristiche dellesoluzioni x1 e x2. Visualizzare su schermo se le soluzionidell’equazione saranno reali, reali coincidenti o complesse. Creare un programma analogo utilizzando la struttura switch case end.Riscrivere il programma utilizzando la struttura while end

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 26: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

46

Soluzione: if% Programma per la risoluzione di un equazione di II grado complete del tipo ax^2+bx+c=0delta=(b^2-4*a*c);d=sqrt(delta);x1=(-b+d)/(2*a);x2=(-b-d)/(2*a);%%%%%%%%%%%%%%%%%%%%%%%%%%%%%IF%%%%%%%%%%%%%%%%if delta<0

disp('le soluzioni sono complesse coniugate')disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);

elseif delta==0disp('le soluzioni reali coincidenti')

disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);

elsedisp('le soluzioni reali distinte')

disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);

end

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 27: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

47

Soluzione: Switch%%%%%%%%%%%%%%SWITCH%%%%%%%%%%%%%%%%%%%%%%switch sign(delta)

case{-1}disp('le soluzioni sono complesse coniugate')disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);case {0}disp('le soluzioni reali coincidenti')disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);case{1}disp('le soluzioni reali distinte')disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);

end

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 28: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

48

Soluzione: While%%%%%%%%%%%%%%%%%%%WHILE%%%%%%%%% while delta<0disp('le soluzioni sono complesse coniugate')

disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);break

endwhile delta==0disp('le soluzioni reali coincidenti')

disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);break

endwhile delta>0disp('le soluzioni reali distinte')

disp(['x1=',num2str(x1)]);disp(['x2=',num2str(x2)]);break

end

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 29: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

49

Esercizio

Creare un programma che, dopo aver “pensato” a un numero compreso tra 0 e 100, chieda all’utente di indovinarlo fino a quando non ci riesce. Il programmadarà un aiuto dicendo ogni volta se il numerointrodotto è maggiore o minore di quello daindovinare.Utilizzare la struttura while

Aiuto: utilizzare rand(1) e round(X) e if dentro awhile

BOZZA BOZZA BOZZA

di Fabio Bozzoli

Page 30: Introduzione a MATLAB® BOZZA BOZZAltgest.campusnet.unipr.it/didattica/att/b7c8.4nn9JIWp0KMh.file.pdf · Il linguaggio MATLAB supporta operazioni su vettori e matrici. Con il linguaggio

50

Soluzionex= rand(1)*100;x= round(x);y=input('introduci un numero');

while not(x==y) if x>ydisp('più alto')

elsedisp('più basso')end

y=input('introduci un numero');end

disp('hai indovinato')

BOZZA BOZZA BOZZA

di Fabio Bozzoli