La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica

Presentazioni simili


Presentazione sul tema: "Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica"— Transcript della presentazione:

1 Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica

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

3 M-files Gli M-files sono files di testo contenenti codice MATLAB. Lestensione 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 allinterno della function sono locali. Le function possono essere richiamate nella Command Window, in uno script o in unaltra function.

6 Sintassi di una function function [y 1 … y m ] = func(x 1 … x n ) >> func(x 1 … x n ) 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 end dove i =, p =, f =.

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) ans = 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 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 (eseguito se cond1 è vera) elseif (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 allistruzione 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( ) 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 derrore 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 "Introduzione a MATLAB Stefano Vigogna Dipartimento di Matematica"

Presentazioni simili


Annunci Google