Schede riassuntive

Riferimento delle funzioni base di MATLAB

Ottimizzazione di Python con MATLAB

Integra gli strumenti avanzati di MATLAB direttamente nei tuoi workflow di Python.

Ambiente MATLAB

clc Cancellazione della finestra dei comandi
help fun Visualizzazione della guida in linea per fun
doc fun Apertura della documentazione relativa a fun
load("filename","vars") Caricamento delle variabili dal file .mat
uiimport("filename") Apertura dello strumento di importazione interattivo
save("filename","vars") Salvataggio delle variabili in un file
clear item Rimozione degli elementi dallo spazio di lavoro
examplescript Esecuzione del file script nominato examplescript
format style Impostazione del formato di visualizzazione di output
ver Generazione di un elenco dei toolbox installati
tic, toc Avvio e arresto del timer
Ctrl+C Interruzione del calcolo in corso

Definizione e modifica delle variabili degli array

a = 5 Definizione di una variabile a con valore 5

A = [1 2 3; 4 5 6]

A = [1 2 3

4 5 6]

Definizione di A come matrice 2x3 dove lo “spazio” separa le colonne e “;” o il ritorno a capo separa le righe
[A,B] Concatenazione di array in orizzontale
[A;B] Concatenazione di array in verticale
x(4) = 7 Modifica del quarto elemento di x in 7
A(1,3) = 5 Modifica di A(1,3) in 5
x(5:10) Acquisizione degli elementi di x dal quinto al decimo
x(1:2:end) Acquisizione di ogni secondo elemento di x (dal primo all’ultimo)
x(x>6) Elenco degli elementi maggiori di 6
x(x==10)=1 Modifica degli elementi usando una condizione
A(4,:) Acquisizione della quarta riga di A
A(:,3) Acquisizione della terza colonna di A
A(6, 2:5) Acquisizione degli elementi dal secondo al quinto nella sesta riga di A
A(:,[1  7])=A(:,[7  1]) Scambio tra la prima e la settima colonna
a:b [a, a+1, a+2 ..., a+n] con a+n≤b
a:ds:b Creazione di un vettore con spaziatura regolare, con spaziatura ds
linspace(a,b,n) Creazione di un vettore di n valori con spaziatura uniforme
logspace(a,b,n) Creazione di un vettore di n valori con spaziatura logaritmica
zeros(m,n) Creazione di una matrice di zeri m x n
ones(m,n) Creazione di una matrice m × n di uno
eye(n) Creazione di una matrice identità n x n
A=diag(x) Creazione di una matrice diagonale da vettore
x=diag(A) Acquisizione di elementi diagonali di una matrice
meshgrid(x,y) Creazione di griglie 2D e 3D
rand(m,n), randi Creazione di numeri casuali di numeri uniformemente distribuiti di numeri interi
randn(m,n) Creazione di numeri casuali normalmente distribuiti

Operatori e caratteri speciali

+, -, *, / Operazioni matematiche tra matrici
.*, ./ Moltiplicazione e divisione di array (operazione elemento per elemento)
^, .^ Potenza di matrici e array
\ Divisione sinistra o ottimizzazione lineare
.', ' Trasposta reale e trasposta coniugata complessa
==, ~=, <, >, <=, >= Operatori relazionali
&&, ||, ~, xor Operazioni logiche (AND, NOT, OR, XOR)
; Eliminazione visualizzazione output
... Connessione righe (con interruzione)
% Description Commento
'Hello' Definizione di un vettore di caratteri
"This is a string" Definizione di una stringa
str1 + str2 Aggiunta di stringhe

Costanti e variabili speciali

ans Risposta più recente
pi π=3,141592654… 
i, j, 1i, 1j Unità immaginaria
NaN, nan Non un numero (ovvero, divisione per zero)
Inf, inf Infinito
eps Precisione relativa in virgola mobile

Numeri complessi

i, j, 1i, 1j Unità immaginaria
real(z) Parte reale di un numero complesso
image(z) Parte immaginaria di un numero complesso
angle(z) Angolo di fase in radianti
conj(z) Coniugata complessa elemento per elemento
isreal(z) Determinazione del fatto che l’array sia reale

Funzioni elementari

sin(x), asin Seno e inverso (argomento in radianti)
sind(x), asind Seno e inverso (argomento in gradi)
sinh(x), asinh Seno iperbolico e inverso (argomento in radianti)
Analogo per altre funzioni trigonometriche: cos, tan, csc, sec e cot
abs(x) Valore assoluto di x, grandezza complessa
exp(x) Esponenziale di x
sqrt(x), nthroot(x,n) Radice quadrata, radice n-esima di numeri reali
log(x) Logaritmo naturale di x
log2(x), log10 Logaritmo con base 2 e 10, rispettivamente
factorial(n) Fattoriale di n
sign(x) Segno di x
mod(x,d) Resto dopo la divisione (modulo)
ceil(x), fix, floor Arrotondamento a +inf, 0, -inf
round(x) Arrotondamento al numero intero o decimale più vicino

Plottaggio

plot(x,y,LineSpec)
Stili della linea: -, --, :, -.
Marcatori: +, o, *, ., x, s, d
Colori: r, g, b, c, m, y, k, w
Plottaggio di y rispetto a x
(LineSpec è opzionale)
LineSpec è una combinazione di linestyle, marker e color sotto forma di stringa.
Esempio: "-r" = linea continua rossa senza marcatori
title("Title") Aggiunta di un titolo al grafico
legend("1st", "2nd") Aggiunta di una legenda agli assi
x/y/zlabel("label") Aggiunta di un’etichetta agli assi x/y/z
x/y/zticks(ticksvec) Acquisizione o impostazione di tacche agli assi x/y/z
x/y/ztickangle(angle) Rotazione delle etichette delle tacche degli assi x/y/z
x/y/zlim Acquisizione o impostazione del range degli assi x/y/z
axis(lim), axis style Impostazione dei limiti e dello stile dell’asse
text(x,y,"txt") Aggiunta di testo
grid on/off Visualizzazione della griglia degli assi
hold on/off Mantenimento del grafico corrente all’aggiunta di grafici nuovi
subplot(m,n,p),
tiledlayout(m,n)
Creazione di assi in posizioni affiancate
yyaxis left/right Creazione del secondo asse y
figure Creazione di una finestra per figure
gcf, gca Acquisizione di figura corrente, acquisizione asse corrente
clf Cancellazione figura corrente
close all Chiusura delle figure aperte

Tabelle

table(var1,...,varN) Creazione di una tabella a partire dai dati nelle variabili var1, ..., varN
readtable("file") Creazione di una tabella a partire da un file
array2table(A) Conversione di un array numerico in tabella
T.var Estrazione dati dalla variabile var
T(rows,columns),
T(rows,["col1","coln"])
Creazione di una nuova tabella con righe e colonne specifiche da T
T.varname=data Assegnazione dati a una (nuova) colonna in T
T.Properties Accesso alle proprietà di T
categorical(A) Creazione di un array categorico
summary(T), groupsummary Stampa riepilogo tabella
join(T1, T2) Unione di tabelle con variabili comuni

Attività (Live Editor)

Le attività di Live Editor sono applicazioni che è possibile aggiungere a un live script per eseguire una serie di operazioni specifiche in modo interattivo. Le attività rappresentano una serie di comandi MATLAB. Per vedere i comandi eseguiti dall’attività, visualizzare il codice generato.

Attività comuni disponibili nella scheda Live Editor nella barra degli strumenti sul desktop:

  • Pulizia dati mancanti
  • Individuazione punti di modifica
  • Rimozione trend
  • Pulizia outlier
  • Individuazione degli estremi locali
  • Smoothing dei dati

Metodi di programmazione

Funzioni
% Save your function in a function file or at the end 
% of a script file. Function files must have the 
% same name as the 1st function 
function cavg = cumavg(x) %multiple args. possible
 cavg=cumsum(x)./(1:length(x)) ; 
end
Funzioni anonime
% defined via function handles 
fun = @(x) cos(x.^2)./abs(3*x);

Strutture di controllo

Condizioni if, elseif
if n<10
 disp("n smaller 10") 
elseif n<=20 
 disp("n between 10 and 20") 
else 
 disp("n larger than 20")
Switch
n = input("Enter an integer: "); 
switch n 
 case -1
 disp("negative one")
 case {0,1,2,3} % check four cases together 
 disp("integer between 0 and 3") 
 otherwise
 disp("integer value outside interval [-1,3]") 
end % control structures terminate with end
For-Loop
% loop a specific number of times, and keep
% track of each iteration with an incrementing
% index variable 
for i = 1:3 
 disp("cool"); 
end % control structures terminate with end
While-Loop
% loops as long as a condition remains true 
n = 1; 
nFactorial = 1; 
while nFactorial < 1e100 
 n = n + 1; 
 nFactorial = nFactorial * n; 
end % control structures terminate with end

Ulteriori comandi di programmazione/controllo

break Interruzione dell’esecuzione del for- o while-loop
continue Passaggio del controllo all’iterazione successiva di un loop
try, catch Esecuzione di dichiarazioni e raccolta di errori

Metodi numerici

fzero(fun,x0) Radice di una funzione non lineare
fminsearch(fun,x0) Individuazione del minimo di una funzione
fminbnd(fun,x1,x2) Individuazione del minimo di una funzione in [x1, x2]
fft(x), ifft(x) Trasformata di Fourier veloce e relativa inversa

Integrazione e differenziazione

integral(f,a,b) Integrazione numerica (funzioni analoghe per 2D e 3D)
trapz(x,y) Integrazione numerica trapezoidale
diff(X) Differenze e derivate approssimate
gradient(X) Gradiente numerico
curl(X,Y,Z,U,V,W) Velocità di rotazione e angolare
divergence(X,...,W) Calcolo della divergenza di un campo vettoriale
ode45(ode,tspan,y0) Risoluzione di un sistema di ODE non stiff
ode15s(ode,tspan,y0) Risoluzione di un sistema di ODE stiff
deval(sol,x) Valutazione della soluzione di un’equazione differenziale
pdepe(m,pde,ic,...bc,xm,ts) Risoluzione di un’equazione differenziale parziale 1D
pdeval(m,xmesh,...usol,xq) Interpolazione di una soluzione PDE numerica

Interpolazione e polinomi

interp1(x,v,xq) Interpolazione 1D (analoga per 2D e 3D)
pchip(x,v,xq) Interpolazione polinomiale cubica a tratti di Hermite
spline(x,v,xq) Interpolazione di spline cubiche
ppval(pp,xq) Valutazione di un polinomio a tratti
mkpp(breaks, coeffs) Realizzazione di un polinomio a tratti
unmkpp(pp)  Estrazione dettagli di polinomi a tratti
poly(x) Polinomio con radici specificate x
polyeig(A0,A1,...,Ap) Autovalori per problema su autovalori di polinomi
polyfit(x,y,d) Adattamento della curva polinomiale
residue(b,a) Espansione/scomposizione in fratti semplici
roots(p) Radici polinomiali
polyval(p,x) Valutazione del polinomio p in corrispondenza dei punti x
polyint(p,k) Integrazione polinomiale
polyder(p) Differenziazione polinomiale

Matrici e array

length(A) Lunghezza della dimensione dell’array più grande
size(A) Dimensioni degli array
numel(A) Numero di elementi nell’array
sort(A) Ordinamento degli elementi di un array
sortrows(A) Ordinamento delle righe di un array o una tabella
flip(A) Capovolgimento dell’ordine degli elementi in un array
squeeze(A) Rimozione delle dimensioni della lunghezza 1
reshape(A,sz) Nuova conformazione dell’array
repmat(A,n) Ripetizione copie dell’array
any(A), all Verifica se alcuni/tutti gli elementi sono diversi da zero
nnz(A) Numero di elementi dell’array diversi da zero
find(A) Indici e valori di elementi diversi da zero

Statistica descrittiva

sum(A), prod Somma o prodotto (lungo le colonne)
max(A), min, bounds Elemento più grande e più piccolo
mean(A), median, mode Operazioni statistiche
std(A), var Varianza e deviazione standard
movsum(A,n), movprod, movmax, movmin, movmean, movmedian, movstd, movvar Spostamento di funzioni statistiche n = lunghezza della finestra di spostamento
cumsum(A), cumprod, cummax, cummin Funzioni statistiche cumulative 
smoothdata(A) Uniformazione dei dati rumorosi
histcounts(X) Calcolo del numero di bin in un istogramma
corrcoef(A), cov Coefficienti di correlazione, covarianza
xcorr(x,y), xcov Intercorrelazione, intervarianza
normalize(A) Normalizzazione dei dati
detrend(x) Rimozione trend polinomiale
isoutlier(A) Individuazione degli outlier nei dati

Algebra lineare

rank(A) Rango della matrice
trace(A) Somma degli elementi diagonali di una matrice
det(A) Determinante di una matrice
poly(A) Polinomio caratteristico di una matrice
eig(A), eigs Autovalori e vettori di una matrice (sottogruppo)
inv(A), pinv Inversa e pseudoinversa di una matrice
norm(x) Norma di un vettore o di una matrice
expm(A), logm Esponenziale di una matrice e logaritmo
cross(A,B) Prodotto vettoriale
dot(A,B) Prodotto interno
kron(A,B) Prodotto tensoriale di Kronecker
null(A) Spazio nullo di una matrice
orth(A) Base ortonormale del range di una matrice
tril(A), triu Parte triangolare inferiore e superiore di una matrice
linsolve(A,B) Risoluzione di un sistema lineare della forma AX=B
lsqminnorm(A,B) Soluzione ai minimi quadrati di un’equazione lineare
svd(A) Decomposizione ai valori singolari
gsvd(A,B) SVD generalizzata
rref(A) Forma a scala ridotta per righe della matrice

Matematica simbolica*

sym x, syms x y z Dichiarazione di una variabile simbolica
eqn = y == 2*a + b Definizione di un’equazione simbolica
solve(eqns,vars) Risoluzione di un’espressione simbolica per una variabile
subs(expr,var, val) Sostituzione di una variabile in un’espressione
expand(expr) Espansione di un’espressione simbolica
assume(var, assumption) Elaborazione di un’ipotesi per una variabile
assumptions(z) Visualizzazione di ipotesi per un oggetto simbolico
fplot(expr), fcontour, fsurf, fmesh, fimplicit Plottaggio di funzioni per un oggetto simbolico
diff(expr,var,n) Differenziazione di un’espressione simbolica
dsolve(deqn,cond) Risoluzione simbolica di un’equazione differenziale
int(expr,var,[a, b]) Integrazione di un’espressione simbolica
taylor(fun,var,z0) Espansione di Taylor di una funzione