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 frequenze di istruzioni e far eseguire: una è la modalità interattiva
cioè ogni istruzione è scritta dall’interprete ed immediatamente elaborata; oppure lo che è
script
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: (quella centrale dove scrivo i comandi e dove Matlab
command window
stampa i risultati), (è a destra, e presenta tutte le variabili che sono state in qualche
workspace
modo chiamate: posso vedere il suo contenuto usando il comando WHOS), (a
current directory
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
cosi le variabili precedentemente salvate in quel file:
load nomefile
Cosi nel workspace vengono caricate le variabili precedentemente slavate 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 fonder 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 citato un a 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 li posso cercare la funzione di cui voglio informazioni.
5. clear
Serve a cancellare le variabili nel warkspace, 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 otterò 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
num2str
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 che mi mostra quale dei
Command historty
vecchi comandi scritti prima posso selezionare, cosi 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 o una
vettore 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 che mi dice la sua dimensione. In questo caso è: [1,1] perché è una
ans
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 per indicare not a number cioè è un non valore nel caso ci servisse;
NaN
- la per indicare l’unita immaginaria;
i o j
- un’altra variabile è che è il pigreco;
pi
- v = [7 3 9] size(v)
possiamo anche creare un , se faccio troverò 1x3 cioè una riga e tre
vettore:
colonne. Per ai valori del vettore basta scrivere v e nella parentesi l’indice della
accedere
posizione a cui voglio accedere, PARTENDO DA 1, scrivendo v(1) otterrò ans = 7 nel workspace.
Questo appena scritto è un per scrivere un Posso fare la
vettore riga, vettore colonna?
trasposizione di un vettore riga, che si fa con v’. Se scrivo: e stampo, otterrò quella riga ma in
v’
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 invece mi serviranno tante righe e tante colonne, perciò scrivo per esempio la
matrice
A = [1 4 5; 4 -5 pi; 0 0 4]
matrice vado sulla seconda riga con il punto e virgola. Se faccio
size(A) otterrò [3,3] ovviamente. Posso creare anche una con il comando
matrice di zeri
zeros(5) crea una matrice 5x5 tutta piena di zeri. Oppure anche matrici non quadrate:
zeros:
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 se le matrici hanno stesse dimensioni. La la posso fare se
somma moltiplicazione
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 alla fine della frase lo uso perché cosi Matlab non mi stampa, ma mi fa
punto e virgola
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
-
Esercizi segnali e sistemi
-
Appunti Segnali e sistemi