Sei sulla pagina 1di 6

COMANDI BASE MATLAB

PER I CORSI COMUNI


“INFORMATICA PER L’INGEGNERIA”

a cura di Stefano Marino

stefano.marino96@live.com
Comandi MATLAB
Cose da sapere
- Si opera nel Live Editor; gli output vengono visualizzati nel Command Window; lo stato delle variabili
viene visualizzato nel Workspace.
- Matlab è Case Sensitive: attenzione alle maiuscole e alle minuscole.
- Il nome di una variabile deve essere compreso tra 1 e 63 caratteri.
- Un’istruzione senza il “;” finale viene stampata nel Command Window; con il “;” viene solo
memorizzata.
- I singoli numeri in Matlab vengono memorizzati come Matrici 1x1.

Inizializzazioni variabili
Dichiarazione e Assegnazione: nome_variabile=valore_variabile/espressione
n.b: Se una variabile non è stata dichiarata il suo valore viene assegnato ad un valore di default ans.

Operazioni fondamentali e comandi


^ elevamento a potenza
* moltiplicazione
/ divisione verso destra es: 10/2=5
\ divisione verso sinistra es: 10\2=0.2
+ somma
- differenza
mod(a,b) resto della divisione di a/b
abs(variabile) valore assoluto
% commenti
%% crea una sezione
Precedenze: regole dell’algebra elementare

Comandi di formattazione (precisione)


format short nome_variabile 4 cifre decimali es: 0.2000
format long nome_variabile 16 cifre decimali es: 0.2000000000000000

Costanti predefinite più comuni


ans variabile temporanea che contiene il risultato più recente

eps costante piccolissima es: x+eps>x

Inf Infinito es: 5/0


NaN not a number es: 0/0
pi 3.14
e esponente in base 10 es: 34e-3 à 34*10^-3

Comandi nel Command Window per la gestione della sessione di lavoro


clc pulizia del Command Window
clear variabile1 variabile2 … pulizia di una o più variabili del Workspace
clear/clear all pulizia totale del Workspace
who trascrive tutte le variabili del Workspace
whos informazioni sul le variabili del Workspace: name, size, byte, class…
close all chiude tutte le finestre grafiche
Funzioni scalari
sin(x)
cos(x)
exp(x)
etc..

Vettori e Matrici
Indicheremo con V(1xn) un vettore riga, V(mx1) un vettore colonna e con A(i,j) una matrice con i righe e j
colonne (con i=m e j=n).

Vettore riga nome_vettore=[1 2 3 4] lo spazio o la virgola indica la stessa riga


Vettore colonna nome_vettore=[1;2;3;4] il punto e virgola indica una nuova colonna
Vettore con una successione di numeri
nome_vettore=[numero_iniziale:incremento/decremento:numero_finale]
Range size(nome_vettore) restituisce il primo e l’ultimo numero
Dimensione length(nome_vettore) restituisce la dimensione del vettore
Accedere ad un valore nome_vettore(indice)
Vettore trasposto nome_vettore’

Creare una Matrice nome_matrice =[1 2 3; 4 5 6; 7 8 9] es: Matrice 3x3


similmente nome_matrice =[ 1 2 3 ; …
456;…
789]
Accedere ad un valore nome_matrice(i,j)
Scrivere un valore nome_matrice(i,j)=valore
Dimensione size(nome_matrice)
Matrice trasposta nome_matrice.’
Incolonnamento nome_matrice(:)
Indici particolari
: indica tutti gli indici
end indica l’ultimo indice

Matrici speciali à (con m righe e n colonne)


eye(n) matrice identità quadrata di ordine n eye(m,n)
zeros(n) matrice di zeri quadrata di ordine n zeros(m,n)
ones(n) matrice di uni quadrata di ordine n ones(m,n)
rand(n) matrice casuale quadrata di ordine n rand (m,n)
magic(n) matrice di ordine n in cui la somma righe=somma colonne

Operazioni matriciali
Posso effettuare operazioni del tipo:
A=ones(3,2)*3 (prodotto tra scalare e matrice per ogni componente)
B=zeros(3,2)+1 (somma tra scalare e matrice per ogni componente)
C=A+B (somma tra matrici)
C=A-B (differenza tra matrici)
C=A^n (elevamento a potenza di una matrice es: n=3 viene fatto A*A*A)
C=A.^n (elevamento a potenza componente per componenti)
C=A*B (prodotto matriciale, righe per colonne)
C=A.*B (prodotto per singola componente)
C=A./B (divisione elemento per elemento)

Concatenazione C=[A B] la matrice B viene accostata ad A creando delle nuove colonne


es: A(3,3); B(3,1) -> C(3,4)
C=[A;B] la matrice B viene messa in successione ad A creando un
prolungamento di righe es: A(3,5); B(1,5) -> C(4,5)
Eliminazione A(1)=[ ] elimina l’elemento in posizione 1
C(:,[3:5])=[ ] eliminazione di più righe e/o colonne
es: rimuove gli elementi della 3°, 4° e 5° colonna da tutte le righe
Estrazioni:
nome_matrice(1:3,1:2) estrae un intervallo di valori all’interno di una matrice: la
combinazione tra le prime 3 righe e le prime 2 colonne
nome_matrice([1,3],[3:5]) estrae la combinazione tra la 1° e 3° riga con la 3°, 4° e 5° colonna
nome_matrice(:,1:2) estrae la combinazione tra tutte le righe e le prime 2 colonne
nome_matrice(2:end,1:end-1) estrazione della combinazione tra la seconda riga fino all’ultima e la
prima colonna fino alla penultima

Grafici e Plot
plot(x,y) disegna il grafico
xlabel(“testo”) aggiunge un testo sulla la retta delle x
ylabel(“testo”) aggiunge un testo sulla la retta delle y
title(“testo”) aggiunge il titolo del plot
grid aggiunge una griglia al plot

Cambiare tratto del disegno


plot(x,y) disegna con una linea continua
plot(x,y,’--‘) disegna con una linea tratteggiata
plot(x,y,’:’) disegna con una linea puntiforme
plot(x,y,’r*’) disegna con asterischi

hold on … hold off istruzione per aggiungere elementi allo stesso grafico (es: altri
plot)
legend(‘primo_valore’,’secondo_valore’,’…’) crea un riquadro “legenda” nel plot per distinguere i grafici
con i vari tratti
subplot(m,n,p) divide il plot in quadranti per inserire più grafici:
m righe, n colonne e p posizione;
es: subplot(2,2,1) posiziona il grafico nel primo quadrante in una matrice 2x2
subplot(2,2,[3,4]) posiziona il grafico nel terzo e quarto quadrante in una
matrice 2x2
successivamente procedo a creare il plot normalmente

Input/Output
input(‘testo’) stampa il testo e riceve in input il valore da assegnare ad una variabile
disp(‘testo’) stampa in output il testo
disp(a) stampa in output il valore di a
disp(num2str(a)) usato per valori numerici; converte il numero a in una stringa e la stampa
fprintf(‘testo %d.\n’,dato) stampa in output il contenuto tra virgolette,
riconosce dei parametri (d% intero; %f float, %s stringa) che vengono
convertiti con i dati del problema chiamati dopo la virgola (sono riconosciuti
in successione). N.b: Utilizzare il \n per andare a capo.
sprintf(contenuto) simile al fprintf ma non stampa, usato per essere assegnato ad una variabile

Comando Find
find(espressione) stampa in output il valore che verifica l’espressione
[IDX]=find(espressione) stampa in output gli indici che verificano la condizione
Istruzioni condizionali e Cicli

IF
if condition
statements
end

IF-ELSE
if condition
if_statements
else
else-statements
end

IF-ELSEIF
if condition
if_statements
elseif condition
elseif_statements
[…]
else
else_statements
end

FOR
for inizializzazione:incremento/decremento:condizione
statements
end

WHILE
while condition
statements
end

oppure simile al for:

inizializzazione
while condition
statements
incremento
end

SWITCH
switch switch_expression
case case_expression
statements
case case_expression
statements
[…]
otherwise
statements
end non necessario l’otherwise
Confronti
eq, == uguaglianza
ne, ~= disuguaglianza
lt, < minore
gt,> maggiore
le, <= minore o uguale
ge, >= maggiore o uguale

Operatori logici
&& and
|| or
~ not

Funzioni/Metodi
Creazione function [variabili outputs]=nome_funzione(variabili inputs)
Per chiamare [variabili outputs]=nome_funzione(variabili inputs)
n.b: nome_funzione è il nome del file con cui è stata salvata la
funzione nome_funzione.m

Altri comandi utili


roots(nome_vettore) per polinomi, prende gli elementi del vettore A come coefficienti di un
polinomio. Restituisce immediatamente le radici.
n.b: numero elementi = grado dell’equazione
uint(nome) prende la parte intera senza segno
int(nome) prende la parte intera con segno
max(nome_vettore) restituisce il max (min per il minimo)
sum(nome_matrice) crea un vettore V(1xn), ogni elemento è la somma della colonna
corrispondente della matrice
min(nome_matrice) crea un vettore V(1xn), ogni elemento è il min della colonna corrispondente
della matrice
sum(sum(nome_matrice)) genera un numero: è la somma di tutte le componenti di un vettore
V(1xn) dopo l’applicazione di sum(nome_matrice)
max(max(nome_matrice)) come il precedente ma restituisce il max
[res,idx]=max(nome_matrice) res è un vettore riga con gli elementi massimi di ogni colonna;
idx contiene gli indici degli elementi massimi estrapolati