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