■ MATLAB & Simulink Cheatsheet
Dalla lezione di Francesco Cufino - 27 Marzo 2026
■ COMANDI DI BASE MATLAB
WORKSPACE E DIRECTORY
pwd % mostra directory corrente
mkdir('nome_cartella') % crea nuova cartella
cd('percorso') % cambia directory
clear % cancella tutte le variabili
clc % pulisce command window
OPERATORI BASILARI
+, -, *, / % operazioni aritmetiche
^ % potenza
; % punto e virgola per non stampare
■ MATRICI E VETTORI
DEFINIZIONE
[1 2 3] % vettore riga
[1; 2; 3] % vettore colonna
[1 2; 3 4] % matrice 2x2
1:10 % vettore da 1 a 10
linspace(0, 10, 100) % 100 punti da 0 a 10
MATRICI SPECIALI
ones(m, n) % matrice di 1
zeros(m, n) % matrice di 0
eye(n) % matrice identità
diag([1 2 3]) % matrice diagonale
rand(m, n) % matrice random [0,1]
INDICIZZAZIONE (parte da 1!)
A(i, j) % elemento riga i, colonna j
A(i, :) % intera riga i
A(:, j) % intera colonna j
A(1:5, 2:4) % sottomatrice
■ OPERAZIONI MATRICIALI
A' % trasposta
A + B % addizione
A * B % moltiplicazione matriciale
A .* B % moltiplicazione elemento-elemento
inv(A) % inversa
det(A) % determinante
eig(A) % autovalori e autovettori
■ NUMERI COMPLESSI
z = 1 + 2i % numero complesso
z = 1 + 2j % equivalente (j = i)
real(z) % parte reale
imag(z) % parte immaginaria
abs(z) % modulo
angle(z) % fase
conj(z) % complesso coniugato
■ GRAFICI E PLOT
CREAZIONE FIGURA
figure % crea nuova figura
h = gcf % get current figure
plot(x, y) % plot x vs y
plot(x, y, 'b-') % blu, linea continua
STILI LINEA
'b-' % blu, continua
'r--' % rosso, tratteggiata
'g:.' % verde, puntini
'k-.' % nero, tratto-punto
PERSONALIZZAZIONE
plot(x, y, 'LineWidth', 2) % spessore linea
hold on % sovrapponi prossimi plot
hold off % cancella precedenti
ASSI E ETICHETTE
xlabel('nome asse X') % etichetta asse X
ylabel('nome asse Y') % etichetta asse Y
legend('sig1', 'sig2') % legenda
grid on % mostra griglia
ESPORTAZIONE
exportgraphics(h, '[Link]') % salva PDF vettoriale
set(gcf, 'Color', 'white') % sfondo bianco
set(gca, 'FontSize', 12) % font size assi
■ STRUTTURE DI CONTROLLO
IF-ELSE: if condizione ... elseif ... else ... end
SWITCH-CASE: switch variabile ... case valore1 ... case valore2 ... otherwise ... end
FOR: for i = 1:n ... end oppure for i = vettore ... end
WHILE: while condizione ... end
■ FUNZIONI PERSONALIZZATE
function [output1, output2] = nome_funzione(input1, input2)
% corpo della funzione
output1 = ...;
output2 = ...;
end
% CHIAMATA:
[y1, y2] = nome_funzione(x1, x2);
■ SISTEMI DINAMICI - SPAZIO DI STATO
DEFINIZIONE SISTEMA
A = [0 1; -1 -0.5]; % matrice dinamica
B = [0; 1]; % matrice ingresso
C = [1 0]; % matrice uscita
D = 0; % matrice feedthrough
sys = ss(A, B, C, D) % crea sistema
SIMULAZIONE (Evoluzione libera)
x0 = [1; 0] % condizioni iniziali
initial(sys, x0, 60) % simula 60 secondi
[y, t, x] = initial(...) % ritorna output, tempo, stato
ANALISI SISTEMA
pole(sys) % poli del sistema
zero(sys) % zeri del sistema
eig(A) % autovalori (equivalenti ai poli)
■ SIMULINK (Ambiente grafico)
Apertura: simulink
Lanciare simulazione: sim('nome_modello.slx')
Stop time: durata simulazione (es: 60 s)
Solver: ODE45 (default, consigliato)
Max step size: step massimo integrazione (es: 0.01 s)
Nota: step più piccolo = curva più liscia, simulazione più lenta
Blocchi Simulink comuni:
State Space → Sistema LTI (A,B,C,D)
Scope → Oscilloscopio (visualizza segnali)
Sum → Somma segnali
Gain → Moltiplicazione per costante
Integrator → Integrale (∫x dt)
Signal Generator → Genera onde (seno, quadra, etc)
To Workspace → Esporta segnale a MATLAB
■ ESEMPIO COMPLETO - Sistema Massa-Smorzatore
% Definisci sistema
A = [0 1; -1 -0.5];
B = [0; 1];
C = [1 0];
D = 0;
sys = ss(A, B, C, D);
% Simulazione
x0 = [1; 0];
[y, t] = initial(sys, x0, 60);
% Plot professionale
figure('Position', [100 100 900 600])
plot(t, y, 'b-', 'LineWidth', 2)
grid on
xlabel('Tempo $t$ [s]', 'Interpreter', 'latex', 'FontSize', 12)
ylabel('Posizione $x$ [m]', 'Interpreter', 'latex', 'FontSize', 12)
set(gcf, 'Color', 'white')
exportgraphics(gcf, '[Link]')
MATLAB Cheatsheet - Generato il 29/03/2026 15:59 | Lezione di Francesco Cufino