MATLAB - Dipartimento di Matematica

Transcript

MATLAB - Dipartimento di Matematica
MATLAB: Una veloce introduzione
(Parte II)
Author: Luca Albergante1
Dipartimento di Matematica, Università degli Studi di Milano
14 Marzo 2011
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
1 / 14
Sommario
1
Input e Output
2
Grafica
3
Esercizi
L. Albergante (Univ. of Milan)
Sommario
MATLAB
14 Marzo 2011
2 / 14
Input e Output
Output
Il metodo più semplice per visualizzare un messaggio è tramite la
funzione disp(). Posso inoltre mandare messaggi di errore tramite le
funzioni warning() ed error().
Queste funzioni prendere come ingresso una stringa (ed
eventualmente dei codici). In MATLAB è particolarmente semplice
concatenare delle stringhe, basta usare l’operatore “[]”:
A = ’La ’; B= ’Donzelletta’;
C = [A B];
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
3 / 14
Input e Output
Output
I valori numerici possono essere convertiti in stringhe con varie
funzioni la più comoda è num2str.
E’ naturalmente possibile anche il processo inverso con la funzione
str2num.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
4 / 14
Input e Output
Input
E’ possibile richiedere un input all’utente tramite la funzione input:
val = input(’Inserire la dimensione dell’’array: ’);
A = zeros(1, val);
input può anche essere usato per leggere delle stringhe:
val = input(’Inserire la dimensione dell’’array: ’ ...
,’s’);
val = str2num(val)
A = zeros(1, val);
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
5 / 14
Input e Output
files
MATLAB permette anche di leggere e scrivere diverti tipi di file. Per ora
non ce ne occuperemo.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
6 / 14
Grafica
Comandi di base
MATLAB implementa diverse funzioni per rappresentare graficamente i
dati. Noi ne vedremo solo alcune che potranno tornarci utili.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
7 / 14
Grafica
Comandi di base
MATLAB implementa diverse funzioni per rappresentare graficamente i
dati. Noi ne vedremo solo alcune che potranno tornarci utili.
La più semplice è ezplot, che richiede in input la funzione da plottare
come stringa, ed un numero di altri valori opzionli (come ad esempio il
range):
ezplot(’sin(x)’)
ezplot(’sin(x)’,[0 14])
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
7 / 14
Grafica
Comandi di base
Altrettanto semplice da usare è plot che però richiede due vettori con
le componenti x e y
X = 1:0.1:2*pi;
Y = sin(X);
plot(X,Y);
Se il vettore delle componenti X viene omesso MATLAB usa gli interi
positivi.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
8 / 14
Grafica
Comandi di base
Un’altra funzione molto utile è errorbar che disegna delle barre, molto
utili per rappresentare la dispersione:
X = 1:0.1:2*pi;
Y = sin(X);
E = 0.5*ones(1,numel(X));
errorbar(X, Y, E)
Se il vettore delle componenti X viene omesso MATLAB usa gli interi
positivi.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
9 / 14
Grafica
Modificare il grafico
Finora abbiamo fatto dei grafici piuttosto scarni. E’ possibile modificare
molti degli aspetti dei grafici, noi ci limiteremo a modificare i più
importanti.
Per prima cosa è possibile specificare come appare la linea del
grafico. Ad emsepio:
X = 1:0.1:2*pi;
Y = sin(X);
plot(X,Y, ’-r’);
disegnerà una linea continua (’-’) e rossa (’r’).
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
10 / 14
Grafica
Modificare il grafico
Per manipolare il grafico in maniera più flessibile è comunque
preferibile usare un handler
X = 1:0.1:2*pi;
Y = sin(X);
plot(X,Y);
set(gca, ’XLim’, [1 2*pi], ’YLim’, [-1.5 1.5]);
set(get(gca,’XLabel’),’String’,’Asse X’)
set(get(gca,’YLabel’),’String’,’Asse Y’)
set(gca,’Title’,text(’String’,’Un semplice grafico’, .
’Color’,’b’))
gca è un handler degli assi e permette di modificarne le proprietà.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
11 / 14
Grafica
Modificare il grafico
E’ inoltre possibile sovrapporre più di una grafico utilizzando il
comando hold on:
X = 1:0.1:2*pi;
Y1 = sin(X); Y2 = cos(X);
plot(X,Y1, ’-r’);
set(gca, ’XLim’, [1 2*pi], ’YLim’, [-1.5 1.5]);
hold on;
plot(X,Y2, ’--b’);
hold off;
Il comando hold off indica a MATLAB che volgiamo usare un altro
grafico.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
12 / 14
Grafica
Modificare il grafico
Molto importante è poi la possibilità di inserire una legenda
X = 1:0.1:2*pi;
Y1 = sin(X); Y2 = cos(X);
plot(X,Y1, ’-r’);
set(gca, ’XLim’, [1 2*pi], ’YLim’, [-1.5 1.5]);
hold on;
plot(X,Y2, ’--b’);
legend(’sin(x)’,’cos(x)’, ’Location’, ’Best’)
hold off;
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
13 / 14
Esercizi
1
Scrivere una funzione che disegni la funzione logaritmo naturale
chiedendo all’utente il colore ed il range dell’asse delle ascisse
2
Scrivere uno script che disegni le funzioni sin(i*x), con i che varia
da 1 a 5
3
Disegnare la funzione sin(x) da −2π a 2π con gli assi delle
ascisse e delle ordinate.
L. Albergante (Univ. of Milan)
MATLAB
14 Marzo 2011
14 / 14