Guida a Matlab - Corso base - Capitolo 9: Meshgrid. Grafici 3D con surf.
Capitolo 9: Meshgrid. Grafici 3D con surf.
Matlab ci consente anche di creare grafici tridimensionali (in questo caso, parleremo di superfici) a partire da matrici di valori.
Per generare una superficie, avremo bisogno di una griglia di valori creata a partire dai vettori X e Y; per generare una tale griglia, utilizziamo la funzione meshgrid di Matlab:
[X, Y] = MESHGRID(x,y)
che trasforma i valori dei vettori x e y, passati come parametri, in array X e Y, utilizzabili per valutare funzioni o, come nel nostro caso, per generare plot 3D.
A partire da X e Y potremo, quindi, calcolare i valori di Z, che definirà "l'altezza" di un "vertice" nel nostro plot 3D.
Per valutare - e rappresentare a video mediante grafico 3D - la funzione:
z = x(1-x)y(1-y)
scriveremo quindi (copiate questa porzione di codice nella vostra Command Window e premete Invio):
>> n=5;
>> m=5;
>> x=linspace(0,1,n);
>> y=linspace(0,1,m);
>> [X,Y] = meshgrid(x,y);
>> Z = X.*(1-X).*Y.*(1-Y);
>> surf(X,Y,Z);
La funzione che ci consente di generare il grafico 3D e di mostrarlo a video è, quindi, surf.
Esistono comunque anche altre funzioni per le superfici, come ad esempio:
| view |
Consente di modificare l'orientamento del grafico. |
| colormap |
Consente di definire il colore del grafico. |
| shading |
Permette di cambiare le impostazioni di ombreggiatura (per modificare la resa visiva) del grafico. |
| mesh |
Permette di disegnare un grafico "a griglia"; |
| contour |
Permette di disegnare un grafico del tipo "a curve di livello" (2D, visto dall'alto). |
| surf |
Disegna la superficie 3D (è quello visto nell'esempio). |
Per tutte queste funzioni esistono anche dei parametri utilizzabili per modificare l'aspetto finale dei grafici; per una trattazione più approfondita, si rimanda all'help online di Matlab disponibile per i vari comandi (es.: help surf, ...).
|