1 / 21

Concetti introduttivi Operatori logici Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

Schema della lezione. Concetti introduttivi Operatori logici Linguaggio MATLAB: costrutti tipici (IF,WHILE…) Comandi di INPUT/OUTPUT Funzioni MATLAB. Concetti introduttivi. Definizione di una matrice: >> A=[ 1,5,3 ; 4,3,2; 3,1,9 ] ; A= [ 1 5 3 4 3 2

Download Presentation

Concetti introduttivi Operatori logici Linguaggio MATLAB: costrutti tipici (IF,WHILE…)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Schema della lezione • Concetti introduttivi • Operatori logici • Linguaggio MATLAB: costrutti tipici (IF,WHILE…) • Comandi di INPUT/OUTPUT • Funzioni MATLAB

  2. Concetti introduttivi Definizione di una matrice: >> A=[ 1,5,3 ; 4,3,2; 3,1,9 ] ; A= [ 1 5 3 4 3 2 3 1 9 ] Lettura di un singolo elemento della matrice: >> X= A (2,3) X=2

  3. TRASPOSTA: • >> B=A’ ( oppure B=transpose(A) ) • B= [ 1 4 3 • 5 3 1 • 3 2 9 ] • DETERMINANTE: • >> X = det (A) • X = -140 • INVERSA DELLA MATRICE • >> B = inv (A)

  4. VETTORI: matrici con una dimensione unitaria. VETTORE RIGA: a = [ 1, 2, 3] VETTORE COLONNA: a = [ 1 ; 2 ; 3 ] Generazione di un vettore di indici: I = Valore_Iniziale : delta : Valore_finale Esempio : >> I = 0 : 1 : 10 I = [ 0 1 2 3 4 5 6 7 8 9 10 ] Maggiori informazioni: Menu Help-> Help Window matlab\matfun

  5. Rappresentazione nello spazio degli stati: comando ss >> SYS = ss ( A, B, C, D ) • Rappresentazione mediante funzione di trasferimento: comando tf >> SYS = tf ( NUM, DEN) = tf ( [ 1,2,6], [1,1,5,8]) Comandi del Control System Toolbox

  6. Rappresentazione ZERI-POLI-GUADAGNO: comando zpk >> SYS = zpk ( [Z1,Z2,..,Zm] , [P1,P2,…,Pn] , K ) ESEMPIO: >> SYS = zpk ([-1] , [2,-3] , 2 ) Comandi del Control System ToolBox

  7. Risposta all’impulso e al gradino del modello : • Comandi STEP e IMPULSE • 2 modi di utilizzo: • step ( SYS) => i tempi di campionamento vengono scelti automaticamente ; • step (SYS, T) => T definisce gli istanti di campionamento • T = Tiniziale: step : Tfinale ( vettore colonna ) • [ Y, T1 ] = step ( SYS , T) => non viene plottato il risultato, nella matrice ( o vettore) Y si ha l’andamento delle uscite mentre T1 contiene il vettore degli istanti di campionamento. • Plot( T1,Y) => visualizzazione dei risultati.

  8. Operatori comparativi Forniscono un risultato di tipo BOOLEAN: VERO o FALSO. Si dispone di 6 operatori: UGUAGLIANZA : eq oppure == DISUGUAGLIANZA : ne oppure ˜= MINORE DI … : lt oppure < MAGGIORE DI .. : gt oppure > MAGGIORE O UGUALE: ge oppure >= MINORE O UGUALE.. : le oppure <=

  9. MODO DI UTILIZZO : >> RIS = A < BoppureRIS = lt ( A,B ) A,B sono 2 matrici della stessa dimensione oppure o A o B scalare. Viene effettuata una comparazione elemento per elemento e viene ritornata la matrice RIS in cui ho 1 se VERO o 0 se FALSO. ESEMPIO: A = [ 2 2 2 2] B = [ 1 1 5 0 ] RIS = lt (A,B) => RIS = [ 0 0 1 0 ]

  10. Operatori logici Operatori binari: FORMATO: RIS = operatore ( A , B) AND oppure & => VERO se entrambi diversi da zero OR oppure ! => VERO se almeno un valore diverso da zero XOR=>ritorna FALSO se i valori sono entrambi = 0 o diversi da 0 Operatori monari : FORMATO: RIS = operatore ( A ) NOT => VERO se il valore e’ uguale a 0, FALSE altrimenti. ANY => se A e’ un array ritorna VERO se tutti i valori sono diversi da 0 ALL => se A e un array ritorna VERO se almeno un valore e’ diverso da 0

  11. Costrutti per la programmazione MATLAB • Vengono utilizzati per una programmazione evoluta • Molto simili ai costrutti del linguaggio C • MATLAB fornisce 4 costrutti fondamentali: • IF • FOR • WHILE • SWITCH

  12. COSTRUTTO IF Viene utilizzato quando l’esecuzione di un certo numero di istruzioni e’ vincolata al soddisfacimento di una certa espressione logica. FORMATO COMPLETO: IF (espressione_logica) blocco_istruzioni; ELSE IF (espressione_logica) blocco_istruzioni; ELSE blocco_istruzioni; END

  13. I blocchi ELSE IF ed ELSE sono opzionali. L’espressione logica deve ritornare un valore scalare. ESEMPIO: IF (Temperatura>25) ARIA_FREDDA=1; ELSE IF (Temperatura>20) ARIA_FREDDA=0; ARIA_CALDA=0; ELSE ARIA_CALDA=1; END

  14. Costrutto FOR Il FOR viene utilizzato quando un gruppo di istruzioni deve essere ripetuto un determinato numero di volte. FORMATO: FOR INDICE = VALORE_IN: STEP: VALORE_FIN Blocco_istruzioni; END STEP = incremento del contatore ad ogni ciclo.

  15. ESEMPIO: vogliamo generare un vettore a “RAMPA” I=1; FOR t=0: 0.1 : 5 Y(I) = t ; I=I+1; END Y diviene un vettore composto da 50 valori: Y= [ 0, 0.1 , 0.2 , 0.3 , 0.4 , …., 5]

  16. Costrutto WHILE Viene utilizzato quando un gruppo di istruzioni deve essere ripetuto finche’ un’espressione logica risulta vera. Anche in questo caso l’espressione deve fornire un valore scalare. FORMATO: WHILE (espressione_logica) Blocco_istruzioni; END ESEMPIO: WHILE (Temperatura<25) ARIA_CALDA=1; END

  17. Costrutto SWITCH Viene utilizzato quando il blocco di istruzioni da eseguire dipende dal valore di una certa variabile. Può essere sostituito da una serie di IF. FORMATO: SWITCHvariabile CASE (caso1) blocco_istruzioni; CASE (caso2) blocco_istruzioni; ……. OTHERWISE blocco_istruzioni; END

  18. ESEMPIO: SWITCH (a) CASE (1) % se a=1 allora esegue queste istruzioni Y(1) = a; CASE(2) Y(1)=a-1; OTHERWISE Y(1)=0; END Menu Help->Help Window: matlab\lang

  19. Istruzione BREAK Questa istruzione viene utilizzata per terminare un ciclo prima del previsto, si utilizza all’interno di cicli FOR o WHILE. ESEMPIO: for I=0:1000 a=controllo_temperatura(); if (a>2000) break; % esco dal ciclo for end stampa_temperatura(a); end

  20. ISTRUZIONI DI INPUT-OUTPUT: • INPUT • FPRINTF INPUT: interazione con l’utente nello spazio di lavoro di MATLAB. Viene utilizzata per leggere valori immessi dall’utente VALORE = INPUT (‘ stringa di testo’ ); FPRINTF: viene utilizzata come in C per visualizzare nello spazio di lavoro il contenuto delle variabili. FPRINT (‘ stringa %x ’ ,valore ) %d = valore intero %f = valore floating

  21. FUNZIONI MATLAB E’ possibile aggiungere alle funzioni già esistenti altre costruite da noi in modo da risolvere problemi specifici. Le variabili definite all’interno di una funzione sono LOCALI. FORMATO: FUNCTION [ output ] = nome_function ( input ) blocco_istruzioni; All’interno della function i parametri di output vengono settati e viene ritornato il loro valore al termine della funzione stessa. Non c’è bisogno di utilizzare il return come in C. Si creano come degli script e si salvano nel formato: nome_function.m

More Related