MATLAB lab 1
Matlab è un ambiente di programmazione che utilizza fondamentalmente le matrici. Una matrice è una matrice con N righe e M colonne, che contiene dunque NxM elementi disposti su NxM queste righe e colonne. Ogni elemento è identificato da due coordinate.
Quindi Matlab consente l’accesso ad un ambiente di calcolo, consente l’utilizzo di funzioni specializzate e consente la programmazione. È un linguaggio di alto livello perciò non serve saper programmare, e consente anche l’esportabilità degli script che si creano, che di fatto sono dei file di testo.
Ci sono due modi per scrivere sequenze di istruzioni e far eseguire: una è la modalità interattiva cioè ogni istruzione è scritta dall’interprete ed immediatamente elaborata; oppure lo script che è un file di testo che ha estensione “.m” in cui si scrive una sequenza di istruzioni e l’interprete le esegue in sequenza quando viene chiamato lo script.
La Matlab ha 4 finestre: command window (quella centrale dove scrivo i comandi e dove Matlab stampa i risultati), workspace (è a destra, e presenta tutte le variabili che sono state in qualche modo chiamate: posso vedere il suo contenuto usando il comando WHOS), current directory (a sinistra, si chiama anche current folder, ed è quella in cui si sta lavorando, vedo tutti i file presenti nella cartella), command history.
Nota bene: devo sempre scrivere correttamente il carattere minuscolo o maiuscolo.
Comandi
1. load
Permette di caricare un file di tipo “.mat”. Quindi basta scrivere il nome del file e vengono caricate così le variabili precedentemente salvate in quel file:
load nomefile
Così nel workspace vengono caricate le variabili precedentemente salvate sul file che abbiamo caricato. Se ho più variabile nel mio file, potrei caricare solo una variabile, scrivendo:
load nomefile a
2. save
Permette di salvare in un determinato file che chiamo ‘prova’, un certo numero di variabili per esempio le variabili ‘a’ ‘b’ ‘c’, basterà scrivere:
save prova a b c
Quando schiaccio invio, se guardo nel current folder vedo che mi compare il file ‘prova.mat’ che ho appena creato.
3. help
Nel Command posso usare il comando help per avere informazioni su tutte le function disponibili in Matlab. Se scrivo: help load mi viene compare tutto su come si utilizza la funzione load, perciò ti aiuta a correggere gli errori.
3. lookfor
Serve a trovare tutte le funzioni in cui viene citata una certa funzione nell’help. Se scrivo:
lookfor load 1
Ecco che mi compariranno tutte le funzioni in cui è citato load. In alternativa, c’è l’help sulla barra degli strumenti e lì posso cercare la funzione di cui voglio informazioni.
5. clear
Serve a cancellare le variabili nel workspace, posso cancellarle tutte scrivo:
clear all
6. clc
Posso scriverlo nel caso in cui la mia Command window si è riempita di informazioni che non mi interessano, ecco che posso cancellare tutto scrivendo semplicemente questo comando, e la finestra apparirà vuota.
7. disp e num2str
La funzione display prende in input una stringa, tra apici:
disp (‘testo’)
E otterrò come output quello scritto tra le virgolette come stringa e ci può servire per etichettare i risultati. Per esempio se voglio usare una frase che contenga il risultato di un mio calcolo, posso scrivere: disp ( [ ‘La media tra 30 e 28 è: ’, num2str(29) ] )
Dove cioè number to string trasforma un numero in una stringa, mi permette dunque di inserire in una frase un valore numerico, e tra parentesi metto un numero, e le [ ] mi servono perché devo concatenare due stringhe. Posso farlo anche con una variabile: se io scrivo a=29, vado sulla frecciata in alto della tastiera, e mi compare la Command history che mi mostra quale dei vecchi comandi scritti prima posso selezionare, così non serve riscrivere tutto. Riprendo il comando disp la media è ecc e inserisco a al posto di 29:
disp ( [ ‘La media tra 30 e 28 è: ’, num2str(a) ] )
Abbiamo visto dunque anche come basta dichiararla ed assegnarle un assegnare una variabile, valore. Se uso le parentesi quadre, di solito indico un vettore o una matrice.
8. size
Applicato ad una variabile, mi dice di che dimensione è quella variabile:
size(a)
Mi dice la dimensione della variabile a (che era a=29), e mi appare una variabile momentanea nel workspace che si chiama ans che mi dice la sua dimensione. In questo caso è: [1,1] perché è una matrice di dimensione 1x1 ovviamente.
9. operazioni matematiche
Le solite operazioni con i soliti simboli: +, -, *, /. La potenza si fa con ^. La radice si fa con: sqrt(81). Anche in questi casi il risultato è salvato in una variabile temporanea ans che compare a sinistra nel workspace.
NB: ans assume il valore dell’ultima operazione fatta.
2
10. variabili
Introduciamo diversi tipi di variabili:
- Possiamo indicare il valore infinito con inf;
- Possiamo inserire NaN per indicare not a number cioè è un non valore nel caso ci servisse;
- La i o j per indicare l’unità immaginaria;
- Un’altra variabile è pi che è il pigreco;
- V = [7 3 9] size(v) possiamo anche creare un vettore: se faccio troverò 1x3 cioè una riga e tre colonne. Per accedere ai valori del vettore basta scrivere v e nella parentesi l’indice della posizione a cui voglio accedere, partendo da 1, scrivendo v(1) otterrò ans = 7 nel workspace. Questo appena scritto è un vettore riga, per scrivere un vettore colonna? Posso fare la trasposizione di un vettore riga, che si fa con v’. Se scrivo: v’ e stampo, otterrò quella riga ma in colonna, quindi il vettore colonna. Oppure per creare direttamente il vettore colonna farò: v = [7; 3; 9] , ovvero mi basta spaziare con il punto e virgola a differenza di prima. Perciò con virgola (o niente) v.riga, con punto e virgola v.colonna.
- Per la matrice invece mi serviranno tante righe e tante colonne, perciò scrivo per esempio la matrice A = [1 4 5; 4 -5 pi; 0 0 4] vado sulla seconda riga con il punto e virgola. Se faccio size(A) otterrò [3,3] ovviamente. Posso creare anche una matrice di zeri con il comando zeros: zeros(5) crea una matrice 5x5 tutta piena di zeri. Oppure anche matrici non quadrate: zeros(3,6) crea una matrice 3x6 tutta piena di zeri. Analogamente c’è il comando ones: ones(3,6) otterrò una matrice di 1 di dimensioni 3x6.
- Posso usare gli stessi simboli scritti sopra per i numeri: posso farlo per calcoli tra matrici: esempio la somma se le matrici hanno stesse dimensioni. La moltiplicazione la posso fare se le dimensioni lo consentono. Se voglio fare una moltiplicazione elemento per elemento (ovviamente dovranno avere le stesse dimensioni), dovrò usare il simbolo: ‘ .* ’ . Guardo esempio sul file prova.
11a. plot —> grafici
Posso usare il comando plot: plot (x, y, ’o’)
In questo modo metterà sull’asse delle x il vettore x, su quello delle y il secondo vettore scritto, e o indica il tipo di linea che disegno: se avessi messo ‘- -‘ me l'averebbe disegnata tratteggiata. Ovviamente prima di poter scrivere questo, devo creare e dichiarare i due vettori x e y: dunque suppongo t = [0:0.1:3];
Il punto e virgola alla fine della frase lo uso perché così Matlab non mi stampa, ma mi fa continuare a scrivere sotto. Dunque t è un vettore che va da 0 a 3 con passo 0.1
Poi per esempio scrivo: y = 10*exp(-2*t)
Che è un vettore della stessa dimensione di t. Adesso, dopo aver dichiarato quindi i due vettori, posso fare: plot(t,y)
E quello che mi compare è un grafico, dove sull’asse delle x ho il vettore t che andava da 0 a 3, e sull’asse delle y ho l’esponenziale decrescente definito con y.
3
Posso anche creare ovvero posso usare il comando subplot.plot con sottofinestre,
11b. subplot
Posso anche creare ovvero posso usare il comando plot con sottofinestre, subplot:
subplot (m, n, k)
Prende la finestra, la divide in mxn sottofinestre, e disegno sulla finestra k. Poi sotto subplot pos
-
Segnali certi
-
Lezioni Segnali e sistemi - segnali elementari
-
Formulario Segnali e sistemi
-
Esercizi segnali e sistemi