matlab. outline programmare in matlab funzioni cicli operatori relazionali esercizi vari
TRANSCRIPT
![Page 1: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/1.jpg)
MATLAB
![Page 2: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/2.jpg)
Outline Programmare in Matlab
Funzioni Cicli Operatori relazionali
Esercizi vari
![Page 3: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/3.jpg)
Le funzioni I Script
parametri in ingresso non modificabili le variabili usate sono messe nella memoria
di lavoro di MATLAB Funzioni
script al quale si possono passare parametri in ingresso ed ottenerne in uscita
- sintassi y1,…,yn -> parametri in uscita x1,…,xn –> parametri in entrata
le variabili usate all’interno sono locali
function [y1,…,yn] = nome_funzione(x1,…,xn)
![Page 4: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/4.jpg)
Le funzioni II L’m file va salvato col nome nome_funzione.m
il nome del file deve essere identico a quello della funzione
La funzione puo’ essere richiamata dalla finestra di comando all’interno di uno script da altre funzioni
digitando [y1,…,yn]=nome_funzione(x1,…,xn) Per poter richiamare la funzione ci dobbiamo
mettere nella directory nella quale la salviamo
![Page 5: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/5.jpg)
Esempio
richiamiamo la funzione nella finestra di comando
parametro in input
creiamo un m-file traccia.m nel quale implementiamo la funzione che calcola la traccia di una matrice
variabile temporanea
![Page 6: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/6.jpg)
Ciclo for…endCiclo incondizionato
for i = n1:passo:n2
blocco di istruzioni
end
![Page 7: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/7.jpg)
Esercizio 1
Scrivere una funzione che sommi gli elementi di un vettore e moltiplichi il risultato per un intero n passato come parametro di input
function s = somma(v,n)
![Page 8: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/8.jpg)
Esercizio 2
Scrivere una funzione che faccia la media degli elementi di una matrice A
[r c] = size(A)usare la funzione somma
function m = media_matrix(A)
![Page 9: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/9.jpg)
Operatori Operatori relazionali:
< <= > >= == = = si usano per confrontare tra di loro gli
elementi di 2 matrici; il risultato dell’operazione sarà 0 se la relazione è falsa 1 se la relazione è vera
Operatori logici: & | si usano per combinare tra loro gli operatori
relazionali
![Page 10: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/10.jpg)
Esempio
![Page 11: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/11.jpg)
Ciclo while…end Ciclo condizionato
while condizione
blocco di istruzioni
end
![Page 12: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/12.jpg)
If…else…end
if condizione1
blocco di istruzioni
elseif condizione2
blocco di istruzioni
else
blocco di istruzioni
end
Test condizionale
opzionali
I comandi che seguono elseif sono eseguiti se condizione2 è vera
I comandi che seguono else sono eseguiti se le precedenti condizioni sono false
coinvolge un operatore relazionale.
Se condizione1 è vera si eseguono i comandi
![Page 13: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/13.jpg)
Esempio
per stampare
una stringa
![Page 14: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/14.jpg)
Comandi “utili” break -> per uscire in maniera forzata
da un ciclo MATLAB salta all’istruzione che termina il
ciclo return -> interrompe l’esecuzione della
funzione si ritorna al programma da cui la funzione è
stata chiamata Osservazione:
Privilegiare operazioni vettoriali ai cicli for…end e while…end
![Page 15: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/15.jpg)
Input\output input sprintf disp
n = input(‘inserisci un intero’);
s = sprintf(‘n = %d’,n);
disp(s)
disp(‘stringa di caratteri’)
![Page 16: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/16.jpg)
Esercizio 3Scrivere una funzione che ha
come output la soluzione del sistema Ax=b
verificareA quadrataA non singolare
nel caso di A singolare o quadrata ritornare una scritta di errore
function x = risolvi_sistema_quadrato(A,b)
![Page 17: MATLAB. Outline Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari](https://reader034.vdocumenti.com/reader034/viewer/2022042607/5542eb4c497959361e8b9721/html5/thumbnails/17.jpg)
Esercizio 4
Scrivere una funzione che dato in input un intero positivo n restituisca il suo fattoriale
fare i test su n (n intero, positivo)
function r = fattoriale(n)