La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Dipartimento di Matematica

Presentazioni simili


Presentazione sul tema: "Dipartimento di Matematica"— Transcript della presentazione:

1 Dipartimento di Matematica
Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica

2 Lezione 3 Programmazione Esercizi script function cicli
operatori logici test condizionali input /output Esercizi

3 M-files Gli M-files sono files di testo contenenti codice MATLAB. L’estensione degli M-files è “.m”. Una volta creati, gli M-files possono essere richiamati dalla Command Window digitando il nome del file, senza estensione. NB: occorre selezionare come Current Directory la cartella dove sono salvati. Esistono 2 tipi di M-files: script e function.

4 Script Gli script sono semplici sequenze di comandi MATLAB. Non accettano dati in input né producono dati in output. Possono lavorare sui dati salvati nel Workspace e creare nuovi dati, che verranno regolarmente salvati nel Workspace. Tipicamente, vengono usati per creare programmi o procedure.

5 Function MATLAB ha le proprie function. Possiamo crearne di nuove attraverso la compilazione di un M-file. Un M-file di tipo function accetta variabili in input e può fornire variabili in output. Tutte le variabili usate all’interno della function sono locali. Le function possono essere richiamate nella Command Window, in uno script o in un’altra function.

6 Sintassi di una function
function [y1 … ym] = func(x1 … xn) <corpo della function: sequenza di comandi che definisce il valore di y1 … ym in funzione di x1 … xn , eventualmente mediante la definizione di altre variabili locali> >> func(x1 … xn) per richiamare la function dalla Command Window. NB: il nome del file deve essere func.m .

7 Esempio Testo di una function traccia.m : function t = traccia(A) D = diag(A); t = sum(D);

8 Ciclo for … end Ciclo incondizionato. Sintassi: for j = i:p:f <blocco di istruzioni> end dove i = <valore iniziale>, p = <passo>, f = <valore finale>.

9 Esempio function m = media(v) n = length(v); s = 0; for j = 1 : n s = s + v(j); end m = s/n;

10 Esercizio 1 Scrivere una funzione che faccia la media degli elementi di una matrice (senza usare la funzione sum).

11 Operatori logici (1) Se ⊰ è uno fra i simboli < , <= , > , >= , ==, ~= , allora >> x ⊰ y dà 1 se la relazione è vera, 0 se la relazione è falsa, entrata per entrata. La relazione x ~= y significa “x diverso da y” e si scrive anche in variante binaria ne(x,y).

12 Operatori logici (2) È possibile connettere più relazioni mediante i connettivi logici & : end | : or ~ : not e raggrupparle mediante parentesi (…).

13 Esempio >> x = [ ]; >> x > 15 ans = >> x(x>15) 30 19

14 Esercizio 2 Creare una function che estragga da un vettore in input le entrate di modulo minore o uguale di uno scalare in input.

15 Ciclo while … end Ciclo condizionato. Sintassi: while <condizione> <blocco di istruzioni> end

16 Esempio function m = media(v) n = length(v); s = 0; i = 1; while i <= n s = s + v(j); i = i + 1; end m = s/n;

17 NOTA BENE La più grande potenzialità di MATLAB è quella di gestire i dati in senso matriciale. Pertanto, è sempre preferibile ricorrere ad operazioni matriciali ed evitare i cicli.

18 Test condizionali if <condizione> <blocco di istruzioni>
(eseguito se cond1 è vera) elseif <condizione> (opzionale) (eseguito se cond2 è vera) else (opzionale) (eseguito se le precedenti cond sono false) end

19 Controllo dati in input
I test condizionali possono essere usati per controllare i dati in input di una function. >> error(‘<…>’) per stampare un messaggio di errore. >> warning(‘<…>’) per stampare un messaggio di allerta.

20 Esempio function c = somma(a,b) [ra,ca] = size(a); [rb,cb] = size(b); if (ra~=rb) | (ca~=cb) error(‘Le matrici devono avere la stessa dimensione!’) else c = a + b; end

21 Interruzioni >> break per interrompere un ciclo (si salta all’istruzione seguente il ciclo); >> return per interrompere una function (si torna al programma da cui è stata chiamata).

22 input / output >> x = input(‘Inserisci il valore di x: ‘); Inserisci il valore di x: … per salvare un dato in input (x = valore assegnato) >> disp(‘<stringa>’) per stampare su schermo una stringa >> s = sprintf(‘Il valore di x è %d’,x); per creare stringhe contenenti valori >> disp(s) per stampare la stringa s

23 Esercizio 3 Scrivere una function che risolva il sistema lineare Ax=b, A matrice quadrata non singolare; la funzione deve controllare i dati in input e stampare un opportuno messaggio d’errore se qualche condizione non è verificata.

24 Esercizio 4 Scrivere una function che calcoli il fattoriale di un numero intero positivo, controllando il dato in input.

25 Esercizio 5 Scrivere un programma che, preso in input un intero n>=3 (controllare il dato), stampi la matrice A composta come segue, calcoli il suo determinante e stampi il risultato.


Scaricare ppt "Dipartimento di Matematica"

Presentazioni simili


Annunci Google