Sei sulla pagina 1di 4

COMANDI MATLAB

clear -> elimina variabile da workspace


clc -> elimina ciò che è scritto nella command window

save _nomefile_ -> salva le variabile del workspace in un file chiamato


_nomefile_ nel formato .mat
load _nomefile_ -> carica nel workspace le variabili precedentemente salvate nel
file _nomefile_.mat ;
è possibile caricare solo alcune variabili presenti nel file
_nomefile_ salvato,
per farlo si usa il comando load con accanto al nome del file le
variabili che vogliamo caricare
(es. _nomefile_ contiene le variabili a,m,u se voglio caricare
solo a e u digito load _nomefile_ a u)

format long -> permette di visualizzare le variabile con una precisione decimale
maggiore di quella usuale (15 cifre)
format short -> fa tornare la precisione decimale a schermo a quattro cifre
decimali (MatLab in ogni caso ha internamente sempre la precisione long)

colon operator -> in inglese colon sono i due punti, viene usato per definire
array conoscendo il valore da cui partono (cioè in prima
posizione) e quello a cui arrivano (cioè in ultima posizione). La distanza standard
tra due valori è 1 ma è possibile utilizzarne una diversa.
(es. x=5:10 è equivalente a x=[5 6 7 8 9 10] mentre y=5:2:11 è equ a
y=[5 7 9 11])

linspace function -> abbreviazione di linearly spaced, si utilizza per definire


un array conoscendo il valore in prima posizione, quello in
ultima posizione e il numero di valori presenti nell'array
(es. x= linspace(2,4,3) è un row vector che come primo valore ha
2, come ultimo valore ha 4 e in totale ha 3 valori, ovvero
è il vettore x=[2 3 4])

transpose operator -> applica la traspozione ad un array, ovvero trasforma i row


vectors nei column vectors e viceversa

rand function -> permette di creare matrici quadrate formate da numeri casuali.
L'ordine della matrice è determinato dall'argomento della
funzione, ovvero rand(4) creerà una matrice 4x4 mentre rand(2,3) creerà una matrice
2x3.

zeros function -> permette di creare una matrice avente zero in tutte le
posizioni (per definirne l'ordine si procede come con la rand
function).

ones function -> permette di creare una matrice avente uno in tutte le posizioni
(per definirne l'ordine si procede come con la rand function).

size function -> fornisce l'ordine dell'array scritto nell'argomento (cioè la


dimensione della matrice o del vettore), è possibile
combinare questa function con rand, ones o zeros per avere matrici di particolari
(cioè di zeri, uni o numeri casuali) dell'ordine di un'altra
matrice.
(es. sia A una matrice 3x4 è possibile definire C= rand(size(A)))

indexing ->
è possibile estrarre i singoli elementi o gruppi di essi da una matrice, il
procedimento si chiama indexing. Per farlo si scrive semplicemente la matrice con
accanto una parentesi tonda con scritto prima il numero della riga poi separato da
una virgola quello della colonna, l'elemento estrapolato verrà salvato come ans
oppure è possibile assegnarlo ad una nuova variabile. Nel far ciò ci si può
riferire all'ultima riga (o colonna) scrivendo all'interno della parentesi anziché
il numero esatto della riga la parola end: tale parola è inoltre soggetta
all'aritmetica elemetare quindi la penultima riga sarà end-1. Allo stesso modo se
si assegna ad una variabile un valore numerico (ad es. y=4) è possibile estrarre la
rispettiva riga (o colonna) semplicemente inserendo all'interno delle parentesi la
variabile (anziché il valore numerico), ovviamente la dimensione deve essere
coerente quindi se la variabile ha un valore maggiore del numero di righe (o
colonne) il programma darà errore. Se in una matrice viene scritto tra parentesi un
solo indice MatLab non dà errore ma al contrario restituisce il valore della
matrice nella posizione che è stata indicata, per capire quale essa è e conteggiare
parte dal primo elemento della prima colonna e conta scendendo verso il basso per
poi passare, quando ha finito gli elementi della prima colonna, alla seconda
colonna e così via fin quando non ha contato tanti elementi quanto era stato
indicato nel valore dell'indexing. Infine per estarre un intera riga (o colonna)
basta semplicemente indicare come valore nella prima posizone nella parentesi il
numero di riga che si vuole estrarre mentre nella seconda posizione si scrivo i due
punti: così facendo si estrarranno tutti i valori in tutte le colonne situati su
quella riga. Oltre che estrarre tutta la riga è possibile anche estrarne solo una
porzione, per farlo si utilizza il noto colon operator e si indica da che riga (o
colonna) a che riga si vuole estrarre separando i due numeri dai due punti, poi si
scrive il numero di colonna. Si noti che svolgendo l'indexing in una matrice 4x3
dalla terza riga alla quarta e poi tutte le colonne si ottiene un'altra matrice
2x3. Per i vettori valgono risultati analoghi considerando che occorre sia per i
vettori riga sia per i vettori colonna indicare un solo indice. Se si vogliono
estrarre dei valori in specifiche posizioni del vettore si utilizza sempre l'usuale
scrittura (nome vettore con accanto tra parentesi tonde ciò che si vuole estrarre)
combinata con [], infatti all'interno delle parentesi quadre si scrivono le
specifiche posizioni da cui si vogliono estrarre i valori. Discorso analogo vale
per le matrici, se si vogliono estrarre due righe (o colonne) non consecutive
bisognerà abbinare all'usuale metodo di indexing il colon operator e []: se si
volesse ad esempio estrarre la seconda e la quarta riga da una matrice A 4x3
basterebbe scrivere A([2,4],:).
(es. sia A una matrice 4x3, A(2,1) è l'elemento situato nella seconda riga e prima
colonna, A(end,2) è l'elemento situato nell'ultima riga e seconda colonna, A(5,1)
non esiste poiché la matrice non ha cinque righe, A(7) è l'elemento situato nella
terza riga e seconda colonna, A(:,3) è tutta la terza colonna, A(3:4,:) sono la
terza e la quarta riga con tutte le colonne cioè una matrice 2x3 come detto sopra,
se v=[11 12 13 14 15 16] allora v(3)=13, v(4:6)=[14 15 16], v([1,4,6]) estrae gli
elementi in prima, quarta e sesta posizione ovvero restituisce il vettore [11 14
16], A([2,4],:) estrae come detto la matrice 2x3 formato dalla seconda e dalla
quarta riga di A).

assignment ->

è possibile cambiare un elemento di un array a piacere, per farlo si scrive il nome


dell'array con accanto tra parentesi tonde la posizione del valore che si vuole
cambiare e poi dopo un segno di uguale il nuovo valore che si è deciso di mettere.
Per le matrici tra parentesi tonde serviranno due indici, per i vettori uno solo.
array calculations ->

sugli array si possono svolgere tutte le operazioni aritmetica di base sommando,


sottraendo, moltiplicando o dividendo degli scalari ad ogni singola componente, ad
esempio se x è un vettore x+2 sarà tale vettore con ogni componente sommata per
due, x*2 avrà ogni entrata moltiplicata per due, x-2 avrà ogni componente sottratta
per due e infine x/2 avrà ogni componente divisa per due. Allo stesso modo è
possibile svolgere le operazioni di addizione e sottrazione tra due array di uguale
dimensione, le quali avranno come risultato l'addizione (o sottrazione) componente
per componente dell'array. Per quanto riguarda l'operazione di moltiplicazione essa
può venire svolta in due modi: il primo (*) è quello matematicamente corretto
ovvero il classico metodo riga per colonna e per poterlo svolgere i due array
devono avere dimensioni compatibili (ad es due array p x m e m x n sono compatibili
e il prodotto è un array p x n), il secondo (.*) è la moltiplicazione componente
per componente dei due array e per poter essere svolta i due array devono avere
uguale dimensione. MatLab fornisce inoltre la possibilità di applicare una
determinata operazione a tutte le componenti di un vettore con un solo comando,
quindi se A è un array sqrt(A) fornirà A con entrate le sue componenti sotto radice
mentre round(A) fornirà A con entrate le componenti arrotondate all'intero più
prossimo attraverso l'usuale arrotondamento matematico e così via con le varie
operzione di elevamento a potenza etc. Infine ad un array possono essere applicate
operazioni che restituiscono un solo valore scalare, ad es max(A) restituisce la
componente di maggior valore di A.

calling functions ->

le function possono essere applicate agli array per ottenere uno o più output.
Inserendo semplicemente come argomento della function la variabile con cui si è
identificato l'array la function assegna a tale variabile il dato principale che
esprime: variabile=max(vettore) assegnerà alla variabile l'entrata massima del
vettore. Se la function lo contempla si possono ottenere più informazioni dalla sua
applicazione all'array, per farlo si utilizzano le square brackets con cui,
separati da una virgola, si elencano le variabili con cui si vogliono indicare i
vari output di una funzione. Infatti aggiungendo una seconda variabile la function
[variabile1, variabile2]=max(vettore) restituisce due output i quali sono
variabile1= "entrata massima del vettore" e variabile2= "indice dell'entrata
massima". Se interessa solo la variabile2 è possibile avere un solo output
utilizzando ~ all'interno delle parentesi quadre: [~,variabile2]=max(vettore)
restituisce solo variabile2= "indice dell'entrata massima" (è quindi chiaro che
[variabile1,~]=max(vettore) e variabile=max(vettore) restituiscono lo stesso,
unico, output). Se una function prevede diverse informazioni essa le salverà come
un unico output di dimensione superiore a 1x1, è il caso ad esempio della size
function che applicata ad un array restituisce un ulteriore array di dimensione 1x2
contenente come prima entrata il numero delle righe e come seconda il numero delle
colonne; è possibile anche in questo caso ottenere due output diversi utilizzando
sempre le square brackets e indicandone all'interno le variabili con cui si
vogliono salvare le informazioni che prima erano contenute in un unico output: ad
esempio [rowMatrice,colMatrice]=size(matrice) restituisce rowMatrice= "righe della
matrice" e colMatrice="colonne della matrice" mentre sizeMatrice=size(matrice)
restituisce sizeMatrice=(m n).

plotting vectors -->

si può creare un grafico tramite la plot() function, che presi due vettori di
uguale dimensione restituisce il grafico avente sull'asse x il primo input
inserito, sull'asse y il secondo input e ad ogni elemento di un vettore viene
associato l'elemento nella stessa posizione dell'altro vettore. Tale grafico è
modificabile aggiugendo un terzo input, inserito tra virgolette, che specifica che
linea usare (retta, tratteggiata, nessuna), di che colore fare il grafico e con che
simbolo (stella, quadrato, punto) segnalare sul grafico dove si incrociano i primi
due input. Oltre che a due vettori la plot funtion può avere un solo input: in tal
caso verrà preso come secondo input un vettore della stessa dimensione del primo
con entrate i numeri naturali dall'1 in poi, che verranno poi inserite sull'asse x.
Se si digita una seconda volta la plot() function viene creato un secondo grafico;
se invece si vuole che le ulteriori informazioni vengano inserite nel primo grafico
bisogno inserire il hold on command che una volta inserito aggiunge le ulteriori
plot() function inserite al primo grafico, se si vuole tornare a creare un grafico
per ogni plot() function basta digitare il comando hold off.
Le linee con cui viene tracciato il grafico possono essere tracciate con modi e
stili diversi inserendo un quarto input tra virgolette, ad es. "LineWidth", e con
un quinto input (numerico) si può averle di differente spessore, 1 sottile 10
spesso.
La plot() function è solo una delle tante funzioni che creano grafici, ed in
particolare serve a creare linee. Ogni function ha delle opzioni di
customerizzazione diverse.

annotating plots -->

un grafico esistente può essere etichettato con la title() function che gli assegna
un titolo, si possono anche assegnare unità di misura agli assi attraverso,
rispettivamente, la xlabel() function e la ylabel() function e creare una legenda
dei simboli nel grafico attraverso la legend() function.
In ognuna di queste funzioni l'input è una stringa le quali in MatLab si indica
attraverso le virgolette "".

Potrebbero piacerti anche