Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte...

45
Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017 Palermo 24 - 28 Luglio 2017 L.3.1. Grafici 2D/3D in MATLAB www.u4learn.it Arianna Pipitone

Transcript of Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte...

Page 1: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017Palermo 24 - 28 Luglio 2017

L.3.1. Grafici 2D/3D in MATLAB

www.u4learn.it Arianna Pipitone

Page 2: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Funzioni grafiche di MATLAB

I grafici aiutano ad interpretare grandi quantità di dati in modo migliore e più veloce rispetto alle tabelle o alle liste

MATLAB dispone di strumenti grafici molto sofisticati, capaci di rappresentare i dati sia in spazi bidimensionali che a 3 dimensioni

I valori da rappresentare possono essere misurati, estrapolati da variabili presenti nel workspace o calcolati da funzioni (built-in o definite dall’utente)

I grafici tracciati con MATLAB possono essere modificati sia a priori che a posteriori e possono essere salvati in vari formati (sia bitmap che vettoriali)

Page 3: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Funzioni grafiche di MATLAB

MATLAB disegna i grafici in una finestra di tipo figure

La prima volta che si disegna un grafico MATLAB apre automaticamente la finestra "figure" dove disegnare il grafico e, fino a quando non verrà chiusa dall’utente, MATLAB continuerà ad usare questa finestra per disegnare grafici sostituendo il precedente grafico con il nuovo

• figure

Apre una nuova finestra dove disegnare il grafico (per evitare di sovrascrivere il precedente grafico)

• figure(‘name’, ‘nomefigura’)

Il comando assegna un nome alla finestra "figure" che sta aprendo. Questo nome sarà visualizzato nella barra della finestra "figure" che apre

• hold on / hold off

Forza MATLAB ad indirizzare i comandi grafici sull’ultima finestra figure aperta senza sovrascriverne il contenuto (on) oppure sovrascrivendolo (off)

Page 4: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

plot(X , Y)

Il comando permette di creare una curva bidimensionale costituita dai punti (xi , yi) con xiX e yiY. I vettori X e Y devono avere la stessa lunghezza

>> x = -2*pi:0.01:2*pi;

>> y = sin(x);

>> plot(x , y)

formato di grafico predefinito

Page 5: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

plot(X , Y , ‘SpecificatorlineaSpecificatoremarcatoreSpecificatorecolore’)

Specificatore - -- : -. nessuno

Stile linea Continua Tratteggiata A punti Punto-linea Nessuna linea

Specificatore Marcatore

+ Più

o Cerchio

* Asterisco

. Punto

x Croce

s Quadrato

d Rombo

... Vedi help

nessuno Nessun marcatore

Specificatore Colore

c Ciano

m Magenta

y Giallo

k Nero

r Rosso

g Verde

b Blu

w Bianco

Page 6: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

È possibile definire tutte le proprietà di personalizzazione del grafico (coloredella linea, spessore, tratteggio, segnapunti, limiti del grafico, ecc…) sia a priorida linea di comando, sia a posteriori per mezzo della Command Window odell’interfaccia grafica

• title(‘titolo del grafico’)

Inserisce il grafico

• xlabel(‘nome asse x’)

Inserisce l’etichetta dell’asse x

• ylabel(‘nome asse y’)

Inserisce l’etichetta dell’asse y

• grid on / grid off

Visualizza (on) o meno (off) la griglia

Page 7: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

>> plot(-2*pi:0.01:2*pi , sin(-2*pi:0.01:2*pi) , '-r')

>> title('funzione seno')

>> xlabel('angoli')

>> ylabel('valori del seno')

>> grid on

Page 8: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

• plot(X,Y, ‘NomeProprietà’, ‘valore proprietà’)

È possibile definire altre proprietà della linea, come lo spessore, colore deimarcatori, ecc.. specificando il nome della proprietà (tra apici) e il suo valore

>> x=-2*pi:0.05:2*pi;

>> y=cos(x);

>> plot(x,y,'-b','LineWidth',3.0)

>> title('y=cos(x)')

>> xlabel('radianti')

>> ylabel('coseno')

>> grid on

titolo

griglia

xlabel

ylabel

Page 9: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

È possibile disegnare più tracce (personalizzabili) in uno stesso grafico grazieal comando hold on

Provare a digitare

>> x = -2*pi:0.01:2*pi;

>> y = sin(x);

>> y1 = cos(x);

>> plot(x , y , '-r')

>> hold on

>> plot(x , y1 , ‘:og')

>> hold off

>> plot(peaks(100))

Page 10: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

Se non si ha bisogno di personalizzare ogni singola curva si possonodisegnare più tracce su uno stesso grafico con un singolo comando,costruendo la matrice dei valori di y concatenando le varie yi per colonna, conpersonalizzazioni comuni ai vari grafici o meno

>> x = -2*pi:0.01:2*pi;

>> y = sin(x);

>> y1 = cos(x);

>> z = [y ; y1];

>> plot(x , z , '--r')

Page 11: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

È possibile definire altre proprietà del grafico con i seguenti comandi

• axis(v)

Se non si vuole che sia MATLAB a scegliere automaticamente la scaladegli assi si può inserire un vettore v(xmin , xmax , ymin , ymax) perdefinire i limiti degli assi cartesiani

• legend(‘string 1’ , ‘string 2’ , ...)

Inserisce la legenda del grafico mostrando un camipone della linea ele stringhe inserite dall’utente

• text(x , y , ‘testo da inserire’)

Inserisce del testo definito dall’utente nella posizione individuata dallecoordinate (x , y)

Page 12: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

>> x = -2*pi:0.01:2*pi;

>> y = sin(x);

>> y1 = cos(x);

>> plot(x , y , '-r')

>> hold on

>> plot(x , y1 , ‘:og')

>> title('funzioni sen(x) e

cos(x)')

>> xlabel('angoli')

>> ylabel('valori delle

funzioni’)

>> legend (’sen(x)’ ,

’cos(x)’)

>> hold off

Page 13: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

>> x=-2*pi:0.05:2*pi;

>> y=cos(x);

>> z=sin(x);

>> plot(x,y,'-b','LineWidth',3.0)

>> hold on

>> plot(x,z,'--r','LineWidth',3.0)

>> legend('y=cos(x)','y=sen(x)')

comandi equivalenti

>> x=-2*pi:0.05:2*pi;

>> y=cos(x);

>> z=sin(x);

>> plot(x,z,'--r','LineWidth',3.0)

>> hold on

>> plot(x,y,'-b','LineWidth',3.0)

>> legend('y=cos(x)','y=sen(x)')

legenda

Page 14: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

• line(x , y , 'PropertyName‘ , PropertyValue)

Se x = [x1 x2] e y = [y1 x2] il comando crea una linea dal punto (x1,y1)al punto (x2,y2) con le eventuali proprietà di linea indicate dall’utente>> x = [-10 15];

>> y = [-4 9];

>> line(x , y , 'LineStyle','--','Color','r','LineWidth',3.0)

>> grid on

>> title('Segmento da A(-10,-4) a B(15,9)')

Page 15: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

• comet(X , Y)

Crea una versione animata di plot (provare a chiudere la finestra delgrafico e a digitare i seguenti comandi)

>> x = -2*pi:0.01:2*pi;

y = 2 * sin(3 * x) + 1/2 * x.^2;

comet(x , y)

Page 16: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D a linea

Esercizio G1

Calcoliamo la gittata di un cannone al variare dell’angolo di lancio e della velocitàiniziale e tracciamo il grafico dei risultati.

Utilizziamo come angoli di lancio (alzo) angoli ϕ compresi tra 0 e π/2 con passo di0.05, come velocità iniziali le velocità 50 m/sec , 100 m/s e 200 m/s e g = 9,81 m/sec2

Sappiamo che la gittata si ottiene con la formula:

20v

git = sin(2 )g

φ

grafico da ottenere

Page 17: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Sottografici

• subplot(m , n , k)

Il comando divide la finestra del grafico in una immaginaria tabella mn, quindi (seguito da un comando di plot) disegna il grafico nella sottofinestra di posto k

La numerazione delle sottofinestre avviene procedendo da sinistra verso destra e dall’alto verso il basso

>> x=-2*pi:0.05:2*pi;

>> y=cos(x);

>> z=sin(x);

>> subplot(2,1,1)

>> plot(x,y,'-b','LineWidth',3.0)

>> title('y=cos(x)')

>> xlabel('radianti')

>> ylabel('coseno')

>> grid on

>> subplot(2,1,2)

>> plot(x,z,'--r','LineWidth',2.0)

>> title('y=sen(x)')

>> xlabel('radianti')

>> ylabel('seno')

Page 18: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D polari

• polar(theta , r)

Il comando genera un grafico in coordinate polari (theta , r) con theta espresso in radianti

È possibile specificare le caratteristiche della linea proprio come per ilc omadoplot

Il comando ha le stesse proprietà e la stessa sintassi del comando plot, inoltre è possibile usarlo per disegnare un grafico all’interno di una finestra del comando subplot (quindi come sottografico di un grafico)

Al grafico polare è possibile aggiungere il titolo, la legenda, del testo, ecc. proprio come avviene con il grafico a linea

Page 19: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D polari

>> x = -pi : 0.01 : pi;

>> y = sin(x);

>> polar(x , y , ‘:g')

>> title('grafico di sen(x) in coordinate polari')

>> xlabel(‘radianti')

Page 20: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D polari

>> x = -pi : 0.01 : pi;

>> y2 = sin(3*x).^2 - 3/2*cos(x)+5*x.^2;

>> polar(x , y2-2 , '-dr')

Page 21: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 2D polarix = -pi : 0.01 : pi;

y = sin(x);

y1 = cos(x);

subplot(2 , 2 , 1)

plot(x , y , '-b' , 'LineWidth' , 2.0)

title('y=sen(x) in coordinate cartesiane')

xlabel('radianti')

grid on

subplot(2 , 2 , 3)

polar(x , y , '-r')

title('y=sen(x) in coordinate polari')

xlabel('radianti')

subplot(2 , 2 , 2)

plot(x , y1 , '-b' , 'LineWidth' , 2.0)

title('y=cos(x) in coordinate cartesiane')

xlabel('radianti')

grid on

subplot(2 , 2 , 4)

polar(x , y1 , '-r')

title('y=cos(x) in coordinate polari')

xlabel('radianti')

Page 22: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici a barre e a torta

• bar(x)

Se x è un vettore genera un grafico a barre verticali con gli elementi di x

Se x è una matrice genera un grafico a barre verticali raggruppando i dati per righe

• barh(x)

Se x è un vettore genera un grafico a barre orizzontali con gli elementi di x

Se x è una matrice genera un grafico a barre orizzontali raggruppando i dati per righe

• bar3(x)

Genera un grafico a barre tridimensionali verticali

• bar3h(x)

Genera un grafico a barre tridimensionali orizzontali

Page 23: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici a barre e a torta

• pie(x)

Genera un grafico a torta in cui ogni elemento della matrice è rappresentato da una fetta della torta

• pie3(x)

Genera un grafico a torta tridimensionale

• hist(x)

Genera un istogramma

Page 24: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici a barre e a torta

Esercizio G2

La tabella mostra i dati di vendita di un’azienda negli ultimi 3 anni.

Rappresentare i dati della tabella con un grafico a barre raggruppando per anno e per tipologia e inserendo i due grafici affiancati in un unico grafico. Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati per anno e per tipologia. Inserire le legende

2009 2010 2011

Auto 320 298 204

Moto 123 185 215

Barche 156 168 193

Page 25: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici a barre e a torta

Grafico dell’esercizio G2

Page 26: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 3D a linea

• plot3(X , Y , Z)

Il comando ha la stessa sintassi di polt ma permette di creare una curva tridimensionale costituita dai punti (xi , yi zi) con xiX, yiY e ziZ. I vettori X , Y e Z devono avere la stessa lunghezza

>> Z = linspace(0 , 10*pi , 1000);

>> Y = cos(Z);

>> X = sin(Z);

>> plot3(X , Y , Z , '-r' , 'LineWidth' , 3.0)

>> grid on

>> title('SPIRALE')

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 27: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 3D a linea

>> Z = linspace(0 , 10*pi , 1000);

Y = cos(Z);

X = sin(Z);

plot3(X , Y , Z , '-r' , 'LineWidth' , 3.0)

grid on

title('SPIRALE')

xlabel('asse x')

ylabel('asse y')

zlabel('asse z')

formato di grafico predefinito

Page 28: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici 3D a linea

• comet3(X , Y , Z)

Crea una versione animata di plot3 (provare a chiudere la finestra del grafico e a digitare i seguenti comandi)

>> Z = linspace(0 , 10*pi , 5000);

>> Y = cos(Z);

>> X = sin(Z);

>> comet3(X , Y , Z , '-r' , 'LineWidth' , 3.0)

Page 29: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

• mesh(A)

Crea una superficie con la tecnica di disegno detta a filo "metallico", ossia unendo i punti della superficie con dei segmenti

Se la variabile di input è una matrice bidimensionale, essa rappresenta le quote z dei punti della superficie, mentre le coordinate x e y dei punti vengono ricavati dalla posizione dell’elemento sulla matrice (A(1 , 1) ha x = 1 e y = 1, A(1 , 2) ha x = 1 e y = 2 e così via)

>> Z = [1:10 ; -1:8 ; -3:2:15 ; 10:-1:1 ;

>> ones(1 , 10) * 3];

>> mesh(Z)

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 30: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> Z = [1:10 ; -1:8 ; -3:2:15 ; 10:-1:1 ; ones(1 , 10) * 3];

>> mesh(Z)

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 31: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

mesh(X , Y , Z)

Quando il comando mesh ha in input 3 elementi questi devono essere tali che X e Y siano due vettori lineari (tali che lenght(X) = size(Z , 2) e lenght(Y) = size(Z , 2)) e Z sia una matrice bidimensionale.

Il comando si comporta come mesh(A), ma in questo caso le coordinate x e y dei punti non vengono ricavate dalla posizione degli elementi in Z bensì vengono lette dai vettori X e Y

>> X = linspace(-5 , 10 , 15);

>> Y = linspace(4 , 30 , 4);

>> Z = [ones(1,15) ; ones(1,15) * 2 ; -5:9 ; 0:2:28];

>> mesh(X , Y , Z)

>> title('SUPERFICIE MESH')

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 32: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

Page 33: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> [X,Y] = meshgrid(-8:.5:8);

>> R = sqrt(X.^2 + Y.^2) + eps;

>> Z = sin(R)./R;

>> mesh(X,Y,Z)

Page 34: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

surf(A)

Crea una superficie tridimensionale con facce costituite da superfici colorate in base alla quota z dei punti

Il comando ha la stessa sintassi e segue le stesse regole di mesh

>> Z = [1:10 ; -1:8 ; -3:2:15 ; 10:-1:1 ;

>> ones(1 , 10) * 3];

>> surf(Z)

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 35: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> Z = [1:10 ; -1:8 ; -3:2:15 ; 10:-1:1 ; ones(1 , 10) * 3];

>> surf(Z)

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 36: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> X = linspace(-5 , 10 , 15);

>> Y = linspace(4 , 30 , 4);

>> Z = [ones(1,15) ; ones(1,15) * 2 ; -5:9 ; 0:2:28];

>> surf(X , Y , Z)

>> title('SUPERFICIE SURF')

>> xlabel('asse x')

>> ylabel('asse y')

>> zlabel('asse z')

Page 37: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> [X , Y] = meshgrid(-8:.5:8);

>> R = sqrt(X.^2 + Y.^2) + eps;

>> Z = sin(R)./R;

>> surf(X,Y,Z)

Page 38: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

contour(A , n)

Crea un istogramma, ossia le curve di livello di una superficie rispetto all’asse z

n è il numero di curve di livello che voglio visualizzare tra il min(z) e il max(z). Se il parametro n non viene specificato dall’utente MATLAB lo sceglie in modo opportuno per permettere una corretta visualizzazione

>> Z = [1:10 ; -1:8 ; -3:2:15 ; 10:-1:1 ;

>> ones(1 , 10) * 3];

>> contour(Z)

Page 39: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> Z = [1:10 ; -1:8 ; -3:2:15 ; 10:-1:1 ;

>> ones(1 , 10) * 3];

>> contour(Z)

Page 40: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> X = linspace(-5 , 10 , 15);

>> Y = linspace(4 , 30 , 4);

>> Z = [ones(1,15) ; ones(1,15) * 2 ; -5:9 ; 0:2:28];

>> surf(X , Y , Z)

>> title('SUPERFICIE CONTOUR')

Page 41: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

>> [X , Y] = meshgrid(-8:.5:8);

>> R = sqrt(X.^2 + Y.^2) + eps;

>> Z = sin(R)./R;

>> contour(X,Y,Z)

Page 42: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

meshc(A)

Crea un grafico composto da mesh e da contour

>> [X , Y] = meshgrid(-8:.5:8);

>> R = sqrt(X.^2 + Y.^2) + eps;

>> Z = sin(R)./R;

>> meshc(X,Y,Z)

Page 43: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

surfc(A)

Crea un grafico composto da surf e da contour

>> [X , Y] = meshgrid(-8:.5:8);

>> R = sqrt(X.^2 + Y.^2) + eps;

>> Z = sin(R)./R;

>> surfc(X,Y,Z)

Page 44: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici

È possibile inserire i grafici 3D in subplot e mischiarli con grafici 2D >> [X ,Y] = meshgrid(-8:.5:8);

R = sqrt(X.^2 + Y.^2) + eps;

Z = sin(R)./R;

subplot(3,2,1)

mesh(X,Y,Z)

subplot(3,2,2)

surf(X,Y,Z)

subplot(3,2,3:4)

contour(X,Y,Z)

subplot(3,2,5)

meshc(X,Y,Z)

subplot(3,2,6)

surfc(X,Y,Z)

Page 45: Scuola di Calcolo Scientifico con MATLAB (SCSM) 2017€¦ · Inserire inoltre il totale nella parte bassa del grafico globale i grafici a torta del totale delle vendite raggruppati

L.3.1. Grafici 2D/3D in MATLAB

Grafici di superfici