Anteprima
Vedrai una selezione di 4 pagine su 15
Segnali e sistemi (Matlab) Pag. 1 Segnali e sistemi (Matlab) Pag. 2
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Segnali e sistemi (Matlab) Pag. 6
Anteprima di 4 pagg. su 15.
Scarica il documento per vederlo tutto.
Segnali e sistemi (Matlab) Pag. 11
1 su 15
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Formattazione del testo con tag HTML

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 freccia in alto della tastiera, e mi compare la che mi mostra quale

deiCommand histortyvecchi comandi scritti prima posso selezionare, cosi non serve riscrivere tutto. Riprendo il comando
disp('La media tra 30 e 28 è: ')
disp(a)
Abbiamo visto dunque anche come basta dichiararla ed assegnarle un 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.

210. 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 trevettore:colonne. Per ai valori del vettore basta scrivere v e nella parentesi l'indice dellaaccedereposizione a cui voglio accedere, PARTENDO DA 1, scrivendo v(1) otterrò ans = 7 nel workspace.

Questo appena scritto è un per scrivere un Posso fare lavettore riga, vettore colonna?trasposizione di un vettore riga, che si fa con v'. Se scrivo: e stampo, otterrò quella riga ma inv'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ò convirgola (o niente) v.riga, con punto e virgola v.colonna.- per la invece mi serviranno tante righe e tante colonne, perciò scrivo per esempio lamatriceA = [1 4 5; 4 -5 pi; 0 0 4]matrice vado sulla seconda riga con il punto e virgola. Se facciosize(A) otterrò [3,3] ovviamente. Posso creare anche una con il comandomatrice di zerizeros(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 percalcoli tra matrici:esempio la se le matrici hanno stesse dimensioni. La la posso fare sesomma moltiplicazionele dimensioni lo consentono. Se voglio fare una moltiplicazione elemento per elemento(ovviamentedovranno avere le stesse dimensioni), dovrò usare il simbolo: ‘ .* ’ . Guardo esempiosul file prova.11a. plot -> graficiPosso 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 oindica il tipo di linea che disegno: se avessi messo ‘- -’ me l’avrebbe disegnata tratteggiata .Ovviamente prima di poter scrivere questo, devo creare e dichiarare i due vettori x e y: dunquesuppongo t = [0:0.1:3];Il ; alla fine della frase lo uso perché così Matlab non mi stampa, ma mi fapunto e virgolacontinuare a scrivere sotto. Dunque t è un vettore che va da 0 a 3 con passo 0.1Poi 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, esull'asse delle y ho l'esponenziale decrescente definito con y.

Posso anche creare ovvero posso usare il comando subplot.plot con sottofinestre, 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 posso scrivere quello che voglio plottare in quella k finestra. Per esempio, scrivo un vettore che va da -pigreco a pigreco con passo pigreco/100, e un vettore y che è il seno di x. Poi faccio subplot(2,2) e nella prima finestra, cioè quella in alto a sinistra, faccio il plot di x contro y e lo disegno in rosso ('r' indica che la linea del grafico sarà rossa). Poi faccio la stessa cosa per 2, 3, 4 con altri colori.

Costrutti logici

  1. if e switch

Sono quelli visti in Java: per if scrivo una condizione (che verifico con per distinguere da = che è == l'assegnazione di una

variabile): se è vero la prima condizione, esegue la prima istruzione, altrimenti se è vera la seconda, esegue la seconda istruzione, altrimenti e in tutti gli altri casi, esegue la terza. Con lo switch accade qualcosa di simile: nel caso la variabile 'algorithm' che è una stringa sia 'ode23' farà la prima istruzione, nel caso sia 'ode15s' ecc e così via.

2. for e while

Sono costrutti iterativi, cioè ripetono iterativamente la stessa operazione: nell'esempio con il for, uso un indice I che va da 1 a N (1:N), e stessa cosa per J, vado a riempire gli elementi di una matrice con quella espressione, poi uso i due end per finire i due cicli for. Nell'esempio con il while, continuo finché I <= N e ovviamente ogni volta devo incrementare il contatore altrimenti non finisco mai il ciclo.

4. ESERCIZI LAB 1

Comincerò tutti gli esercizi con 'Es2 lab2' per esempio, e inizierò sempre con: clear all, clc,

close all. Salverò gli esercizi con 'es1'.
Esercizio 1
1- caricare il file matlab exercise.mat
2- listare tutte le variabili caricate
3- cancellare la variabile "anc"
4- fare il display della stringa: "Salverò alcune variabili"
5- salvare la variabile t e mtc in un file Matlab .mat e nominarlo: selezione
6- cancellare tutte le variabili

Per il primo punto basterà scrivere load ('exercise') e mi caricherà tutte le variabili.
Per il secondo punto, basterà usare il comando whos nello script.
Per il terzo punto basta usare la funzione clear anc.
Per fare il display basta usare disp.
Per il quinto punto, basterà scrivere save selezione t mtc e si creerà un file .mat chiamato selezione.

Esercizio 2
1- creare una matrice e un vettore come richiesto
2- eseguire m2 = m1 trasposto * v1
3- eseguire la seguente operazione: m3=(m1 )^2, mi da errore perché

non posso fare il quadrato di un amatrice non quadrata, mi consiglia al massimo di usare cioè.
elevo al quadrato tutti gli elementi della matrice.
4- cancellare tutte le variabili

Esercizio 3
Disegnare sostanzialmente due grafici, con un vettore dato. Questo vettore lo uso come ascissa, e le ordinate sono due funzioni y1 e y2 che il testo mi fornisce. Prima di un plot o subplot, posso scrivere per far stampare il grafico desiderato in una finestra per ognuno. Se non specifico niente, figure (1) i tre grafici saranno visualizzati nella stessa finestra. Inoltre è utile cominciare il programma con:
clear all
clc
close all
E terminarlo con:
disp('Schiaccia un tasto per proseguire');
pause
close all
clear all
In modo che all'apertura cancelli tutto quello che c'era prima, e alla chiusura, quando schiaccio un tasto, chiude tutte le finestre e cancella tutte le variabili.

Esercizio 4
Devo scrivere una funzione che mi faccia la media pesata: avrò quindi in input due vettori,

uno dicui voglio calcolare la media e l'altro che mi da i coefficienti per cui dividere per farla pesata. La funzione quindi avrà come risultato un solo numero, perché se per esempio ho un vettore 2x4 e uno 4x1, il mio risultato sarà u. 2x1, di cui però devo fare la somma che poi divido per ottenere la media. Poi mi chiede di usare questa finzione in modo da fare la media di ogni riga di x, e quindi devo mettere in input per la funzione, una riga per volta, e per farlo scriverò:

y(i) = mediapesata (X(i,:),w);

Quindi avrò un risultato per ogni riga.

Tipi di file in Matlab

Possiamo avere diversi tipi di file: quelli .m, che son dei testi; i file .mat che sono dei dati; poi quelli .fig e altri. Fra i file .m, riconosciamo due tipi:

-script: essi sono file che non accettano in ingresso degli argomenti, né restituiscono variabili in uscita. Lavorano sui dati del workspace, dunque per esempio le istruzioni scritte in Command window, posso metterli

In un file.m che le esegua di fila. Posso mettere questo file che chiamo per esempio es1, e metterlo nella stessa directory, e poi farlo partire chiamando semplicemente con 'es1' il suo nome. Devo usare i punti e virgola ogni fine frase per andare a capo. <pre> function: che possono accettare in ingresso e restituire in uscita delle variabili. Le variabili interne sono locali (non sono visibili dal workspace). Un esempio è la function che calcola la media: C'è un che è data dalla parola chiave a cui segue una lista di argomenti di intestazione function, uscita; c'è il nome della function che deve essere lo stesso del file .m e tra parentesi segue il nome della variabile (o più </pre>
Dettagli
Publisher
A.A. 2022-2023
15 pagine
SSD Ingegneria industriale e dell'informazione ING-INF/05 Sistemi di elaborazione delle informazioni

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher CarloCirillo di informazioni apprese con la frequenza delle lezioni di Segnali e sistemi e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Padova o del prof Dalla Man Chiara.