matlab3

Transcript

matlab3
Corso di Laurea in Ingegneria Meccanica
Trasmissione del calore con applicazioni
numeriche: informatica applicata
a.a.. 15/16
a.a
Parte III
Prof. Nicola Forgione
Dipartimento di Ingegneria Civile e Industriale
E-mail: [email protected]
[email protected];; tel. 0502218057
Input ed output
• La funzione input mostra un messaggio e permette di leggere il valore di una
variabile (array
array)) da tastiera
tastiera::
var = input('Inserire il numero di iterazioni
iterazioni:
: ')
');
;
Per la sola lettura di una stringa di caratteri si pone invece
invece::
cha = input(
input('What
'What is your name',
name','s')
's');
;
La stringa di messaggio può contenere uno o più sequenze di escape '\n' che
consente di saltare alla linea successiva
successiva..
• Per generare un menu di scelte per l'input dell'utilizzatore si può impiegare la
funzione::
funzione
k = menu('
menu('mtitle
mtitle','opt
','opt1
1','opt
','opt2
2',
',...
...,'optn')
,'optn');
;
che visualizza un menu il cui titolo è definito dalla variabile stringa 'mtitle
mtitle'
' e le
cui scelte sono le variabili stringhe 'opt
'opt1
1', 'opt
'opt2
2', …. Il valore scelto
dall'utilizzatore viene assegnato alla variabile k.
• Per visualizzare stringhe (messaggi) oppure array si adopera la funzione disp
disp::
disp('Premere
disp
('Premere un tasto');
• La funzione error quando viene eseguita mostra un messaggio di errore ed
interrompe l'esecuzione di un file
file..m:
error('A
error
('A deve essere invertibile')
invertibile');
;
Apertura e chiusura di file
• La prima operazione da eseguire prima di poter scrivere o leggere da file è
l'apertura
l'
apertura del file
file::
fid = fopen
fopen(
(filename
filename,
,permission
permission);
);
La funzione fopen apre il file di nome filename nella modalità specificata da
permission..
permission
• L'operazione di apertura serve ad associare un identificator
identificatoree (scalare intero
intero:: fid
fid)) al
file di nome filename
filename.. Dopo che il file è stato aperto, il programmatore dovrà
utilizzare l'identificatore fid per poter scrivere e/o leggere le informazioni
memorizzate al suo interno
interno..
• La modalità di apertura del file è specificata da permission che può assumere i
valori riportati nella tabella successiva
successiva..
• Dopo avere terminato le operazioni di lettura e/o scrittura è necessario eseguire
l'operazione di chiusura del file
file::
fclose(
fclose
(fid
fid);
);
a = -3; b = 2; c = a*b
a*b;
;
fid = fopen
fopen('
('prova.txt
prova.txt',
', 'w');
fprintf(
fprintf
(fid
fid,'a
,'a = %5.2f b = %5.2f c = %5.2f \n',a,b,c);
fclose(
fclose
(fid
fid);
);
Apertura e chiusura di file
Modalità
Descrizione
'r'
sola lettura - sul file sarà possibile eseguire soltanto operazioni di lettura e quindi
non sarà possibile effettuarvi la scrittura
scrittura.. Se il file non esiste la funzione fopen
ritornerà il codice di errore NULL
NULL..
'w'
sola scrittura - sul file sarà possibile eseguire solamente operazioni di scrittura,
quindi non operazioni di lettura
lettura.. Se il file al momento dell'apertura non esiste sarà
automaticamente creato, in caso contrario il contenuto del file preesistente sarà
perso..
perso
'a'
solo scrittura a fine file  sul file sarà possibile eseguire soltanto operazioni di
scrittura a fine file
file:: tutte le scritture verranno sempre eseguite in coda al
contenuto attuale del file
file.. Se il file non esiste verrà creato automaticamente, in
caso contrario il contenuto del file preesistente verrà mantenuto
mantenuto..
'r+'
lettura e scrittura  sul file sarà possibile eseguire operazioni sia di lettura sia di
scrittura.. Se il file non esiste, la funzione fopen ritornerà il codice di errore NULL
scrittura
NULL..
'w+'
scrittura e lettura - sul file sarà possibile eseguire operazioni sia di scrittura sia di
lettura.. Se il file non esiste verrà automaticamente creato, in caso contrario il
lettura
contenuto del file preesistente verrà perso
perso..
'a+'
lettura e scrittura a fine file - sul file sarà possibile eseguire operazioni sia di lettura
sia di scrittura a fine file
file.. Se il file non esiste verrà automaticamente creato, in caso
contrario il contenuto del file preesistente verrà mantenuto
mantenuto..
Scrittura formattata su file
• Per scrivere su un file in modo formattato si usa la funzione fprintf
fprintf::
fprintf(
fprintf
(fid
fid,format,A,
,format,A, …);
dove fid è l'
l'identificatore
identificatore del file che viene passato da fopen (esso può inoltre
essere 1 per lo “standard output” (il monitor))
monitor));; se fid viene omesso allora viene
assunto automaticamente uguale ad 1 e la stampa avviene sulla command window
window..
• L'argomento format è una stringa di formato contenente
contenente:: sequenze di caratteri da
stampare sul file (opzionale), delle specifiche di conversione in linguaggio C e delle
sequenze di escape (opzionali)
(opzionali)..
• Le specifiche di conversione controllano il tipo di notazione
notazione,, l'
l'allineamento
allineamento,, le cifre
significative,, l'
significative
l'ampiezza
ampiezza del campo
campo,, ed altre caratteristiche del formato di output
output..
• Le specifiche di conversione iniziano con il caratttere % e contengono i seguenti
elementi obbligatori ed opzionali
opzionali:: flags (opzionale)
(opzionale);; width and precision fields
(opzionale);; a subtype specifier (opzionale)
(opzionale)
(opzionale);; conversion character (obbligatorio)
(obbligatorio)..
Questi elementi devono essere specificati nel seguente ordine
ordine::
Specifiche
di conversione
Scrittura formattata su file
• Conversion character
Specificatore
Descrizione
%c
Carattere singolo
%d
Notazione intera decimale con segno
%e
Notazione esponenziale (usando una e come in 3.1415e+00)
%E
Notazione esponenziale (usando una E come in 3.1415E+00)
%f
Notazione decimale secondo il formato [-]mmm
]mmm..nnnn dove la lunghezza della
stringa di n è specificata dalla precisione
%g
Stampa la rappresentazione più breve tra %f e %e, eliminando
eventualmente gli zeri non significativi
%G
Lo stesso di %g, ma usando la lettera maiuscola E al posto di e
%s
Stringa di caratteri
%x
Notazione esadecimale (usando lettere minuscole aa-f)
%X
Notazione esadecimale (usando lettere maiuscole AA-F)
• Flags
Si può controllare l'allineamento dell'output usando uno di questi optional flags
flags:: un
segno meno (-) significa che il numero verrà scritto allineato a sinistra
sinistra;; un segno
più (+) significa che il numero verrà stampato con il segno (+ o -).
Scrittura formattata su file o su stringa
• La stringa di formato può contenere alcune sequenze di caratteri di escape (dette
sequenze di escape
escape)) che non verranno visualizzate esattamente così come sono
scritte poiché hanno lo scopo di formattare il testo
testo.. Tali sequenze iniziano con il
simbolo \ (backslash)
(backslash).. Esempi di sequenze di escape sono
sono::
\b
ritorna di un carattere indietro (backspace)
\n
va a capo linea
\t
tabulazione orizzontale
\\
stampa il carattere \
\"
stampa il carattere "
%%
stampa il carattere %
• Per scrivere dati formattati su una stringa si usa la funzione sprintf
sprintf::
s = sprintf
sprintf(format,A,…)
(format,A,…)
dove A è la matrice contenente i dati il cui formato è specificato da format
format..
Esempio:
a = -3/2;
disp(
disp
(sprintf
sprintf('a
('a = %5.2f \n',a))
n',a));
;
l’istruzione precedente è equivalente a:
fprintf('a
fprintf
('a = %5.2f \n',a)
Lettura formattata da file o da stringa
• Per leggere da un file in modo formattato si usa la funzione fscanf
fscanf::
A = fscanf
fscanf(
(fid
fid,format,
,format,size
size);
);
dove fid è l'identificatore del file su cui leggere i dati
dati.. La funzione fscanf legge
tutti i dati dal file specificato dall'identificatore fid
fid,, li converte in accordo al
formato di stringa specificato in format e immagazzina questi dati nella matrice
A.
• size può essere
essere::
legge al più n elementi all'interno di un vettore colonna
colonna;;
legge fino alla fine del file, fornendo in un vettore colonna contenente gli stessi
numeri di elementi che si trovano sul file
file;;
[m,n] legge una quantità di elementi sufficienti a riempire una matrice mxn, riempendo
la matrice per colonne
colonne;; n può essere inf
inf,, mentre m no
no..
n
inf
• Il format contiene la specifica di conversione
conversione;; generalmente in questo caso viene
utilizzato il solo carattere di conversione (ad es
es.. %f) anche se può essere inoltre
specificato la massima ampiezza del campo
campo..
• In alternativa dal menu File si seleziona Import Data e poi si sceglie la directory e il
nome del file da importare
importare..
• Per leggere da una stringa in modo formattato si usa la funzione sscanf
sscanf::
A = sscanf
sscanf(s,format,
(s,format,size
size);
);
dove s è una variabile stringa.
Scrittura/lettura file in formato ASCII
e scrittura/lettura non formattata
• Per scrivere dati in un file in formato ASCII si usa la funzione dlmwrite
dlmwrite::
dlmwrite(
dlmwrite
(filename,A,dlm
filename,A,dlm);
);
Nel file “filename
filename”
” vengono scritti gli elementi della matrice A in formato ASCII
usando il carattere dlm come delimitatore (es
(es.:
.: '\t').
• Per leggere dati da un file in formato ASCII si usa la funzione dlmread
dlmread::
A = dlmread
dlmread(
(filename,dlm
filename,dlm);
);
• Per scrivere in un file in modo non formattato (dati binari) si usa la funzione fwrite
fwrite::
fwrite(
fwrite
(fid
fid,A,
,A,precision
precision);
);
dove precision è una stringa che specifica il formato dei dati
dati.. Ad esempio
'float32
'float
32'
' specifica che i dati sono numeri reali scritti in singola precisione,
mentre 'double
double'
' specifica che i dati sono numeri reali scritti in doppia precisione
precisione..
• Per leggere da un file in modo non formattato (dati binari) si usa la funzione fread
fread::
A = fread
fread(
(fid,size,precision
fid,size,precision);
);
Interpolazione
• E' spesso necessario stimare valori intermedi tra due dati noti con precisione
precisione..
Questo processo si chiama interpolazione
interpolazione..
• L'interpolazione lineare in MATLAB è svolta dalle funzioni interp
interp1
1 (1D) e
interp2
interp
2 (2D)
D).. Supponiamo che il vettore x contenga i dati della variabile
indipendente e che il vettore y contenga i dati della variabile dipendente
dipendente.. Allora
scrivendo::
scrivendo
y_int = interp
interp1
1(x,y,
(x,y,x_int
x_int)
);
si ottiene un vettore della stessa dimensione di x_int che contiene i valori
interpolati linearmente di y che corrispondono a x_int
x_int..
• E' da notare che i valori della variabile indipendente del vettore x devono essere in
ordine crescente e i valori del vettore di interpolazione x_int devono essere
compresi all'interno dell'intervallo dei valori di x.
• Esempio:
Esempio: i vettori x e y contengono, rispettivamente i tempi e le temperature
x = [7, 9, 11
11,
, 12
12]
]; % tempi
y = [15
15,
, 18
18,
, 25
25,
, 28
28]
]; % temperature
x_int = [8, 10
10]
]; % ore 8.00 e ore 10
10.
.00 temperatura=
temperatura=?
?
y_int = interp
interp1
1(x, y, x_int
x_int)
)
Interpolazione
• In alternativa, è possibile eseguire l'interpolazione del tipo spline cubica che nel
caso 1D si concretizza attraverso il seguente comando
comando::
y_int = spline(x,y,x_int)
spline(x,y,x_int);
;
• La funzione interp
interp2
2 di MATLAB consente di interpolare una funzione di due
variabili, z = f(x,y). Se vogliamo stimare il valore di z per x=xi e y=yi, la sintassi è:
interp2
interp
2(x,y,z,x_i,y_i)
(x,y,z,x_i,y_i);
;
• Supponiamo di avere a disposizione le temperature misurate in uno stesso istante in
quattro differenti località disposte come riportato in figura
figura.. Si voglia stimare la
temperatura in una località interna nel punto di coordinate xi=0.6 e yi=1.5. La
sessione di lavoro è la seguente
seguente::
x = [0,1];
15
17
y = [0,2];
z = [15
15,
,17
17;
;18
18,
,14
14]
]; % temperature
x_i = 0.6;
y_i = 1.5;
z_int = interp
interp2
2(x, y, z, x_i, y_i)
18
14
Diagrammi sovrapposti
• Le seguenti varianti dei comandi plot(y) e plot(x,y) possono essere utilizzati
per generare diagrammi sovrapposti
sovrapposti::
• plot(A) rappresenta in un diagramma le colonne di A in funzione dei loro
indici, generando n curve
curve;; A è una matrice con m righe ed n colonne
colonne..
• plot(x,A) rappresenta in un diagramma la matrice A in funzione del vettore
x; x è un vettore riga o un vettore colonna ed A è una matrice con m righe ed n
colonne.. Se la dimensione di x è pari ad m, ogni colonna di A viene
colonne
rappresentata in funzione del vettore x. Il diagramma conterrà tante curve
quante sono le colonne di A. Se la dimensione di x è pari ad n, ogni riga di A
viene rappresentata in funzione del vettore x. Il diagramma conterrà tante
curve quante sono le righe di A.
• plot(A,y) rappresenta in un diagramma il vettore y in funzione della
matrice A. Se la dimensione di y è pari ad m, y sarà rappresentato in funzione
delle colonne di A. Il diagramma conterrà tante curve quante sono le colonne di
A. Se la dimensione di y è pari ad n, y sarà rappresentato in funzione delle
righe di A. ogni riga di A viene rappresentata in funzione del vettore x. Il
diagramma conterrà tante curve quante sono le righe di A.
• plot(A,B) rappresenta in un diagramma le colonne della matrice B in
funzione delle colonne della matrice A.
Tipi di linee e simboli dei dati
• Per rappresentare il vettore y in funzione del vettore x e indicare ogni punto con un
determinato simbolo, basta racchiudere il simbolo tra due apici nella funzione
plot..
plot
• Ad esempio per rappresentare i punti di un diagramma con un cerchio basta
digitare:: plot(x,y,'o')
digitare
plot(x,y,'o').. Per collegare i vari simboli con un segmento occorre
rappresentare due volte i dati digitando
digitando:: plot(x,y,x,y,'o')
plot(x,y,x,y,'o')..
• Per rappresentare y in funzione di x con degli asterischi verdi collegati ad una
linea tratteggiata rossa, basta digitare
digitare:: plot(x,y,'g*',x,y,'r
plot(x,y,'g*',x,y,'r---')
')..
Simbolo
Marcatore
Tipo linea
Marcatore
Punto
.
Linea cont. (default)
-
Nero
k
Asterisco
*
Tratteggio
--
Blu
b
Segno per
x
Tratto e punto
-.
Azzurro
c
Cerchio
o
Linea punteggiata
Verde
g
Segno più
+
Rosa
m
Quadrato
s
Rosso
r
Rombo
d
Bianco
w
Stella
p
Giallo
y
:
Colore
Marcatore
Etichette per linee e dati
• E' possibile creare titoli ed
etichette che contengono simboli
matematici, lettere greche ed altri
attributi grafici (caratteristiche
basate sul linguaggio TeX
TeX)).
seno e coseno
• Se un diagramma è formato da più curve è possibile inserire una legenda per
distinguerle, utilizzando il comando legend
legend.. La sintassi di base è:
legend('stringa
legend
('stringa1
1','stringa
','stringa2
2',
',...
...)
);
Ad esempio il seguente file script genera il diagramma mostrato in figura
figura..
x=[
x=
[0:0.01
01:
:2*pi]
*pi];
;
y=sin(x)
y=sin
(x);
;
z=cos(x)
z=cos
(x);
;
1
plot(x,y,x,z,'-plot(x,y,x,z,'
--')
');
;
s in(x)
0.8
c os (x)
xlabel('x')
xlabel
('x');
;
0.6
ylabel('seno
ylabel
('seno e coseno')
coseno');
;
legend('sin(x)','cos(x)')
legend
('sin(x)','cos(x)');
;
0.4
0.2
0
-0.2
-0.4
-0.6
-0.8
-1
0
1
2
3
4
x
5
6
7
Principali simboli e caratteri speciali
Diagrammi multipli
• Il comando subplot consente di generare nello stesso grafico più diagrammi di
dimensioni ridotte
ridotte.. La sintassi è:
subplot(m,n,p)
subplot
(m,n,p);
;
Questo comando divide la finestra grafica di MATLAB in una serie di pannelli
rettangolari disposti su m righe e n colonne
colonne.. La variabile p indica a MATLAB di
porre l'output del comando plot che segue il comando subplot nel p-esimo
pannello..
pannello
• Per esempio, subplot
subplot(
(3,2,5) crea un array di sei pannelli (tre righe e due
colonne di pannelli) e indica a MATLAB di visualizzare il successivo diagramma
nel quinto pannello
pannello..
• Il seguente file script crea la figura riportata nella pagina successiva che contiene i
diagrammi delle funzioni y=e-1.2x sin(
sin(10
10x+
x+55) per 0≤ x≤5 e y=|x3-100
100|| per -6≤ x≤
x≤66.
x = [0:0.01
01:
:5];
y = exp
exp(
(-1.2*x)
*x).
.*sin
*sin(
(10
10*x+
*x+5
5);
subplot(
subplot
(1,2,1);
plot(x,y),xlabel
plot(x,y),
xlabel('x'),
('x'),ylabel
ylabel('y'),
('y'),axis
axis([
([0
0 5 -1 1])
x = [-6:0.01
01:
:6];
y = abs
abs(x
(x.
.^3-100
100)
);
subplot(
subplot
(1,2,2);
plot(x,y),xlabel
plot(x,y),
xlabel('x'),
('x'),ylabel
ylabel('y'),
('y'),axis
axis([
([-6 6 0 350
350])
])
Diagrammi multipli
1
350
0.8
300
0.6
250
0.4
200
0
y
y
0.2
150
-0.2
-0.4
100
-0.6
50
-0.8
-1
0
2
4
x
0
-5
0
x
5
Diagrammi bidimensionali speciali
Comando
Descrizione
semilogx(x,y)
Crea un diagramma semilogaritmico di y in funzione di x con
l'asse x in scala logaritmica.
semilogy(x,y)
Crea un diagramma semilogaritmico di y in funzione di x con
l'asse y in scala logaritmica.
loglog(x,y)
Crea un diagramma bilogaritmico di y in funzione di x.
bar(x,y)
Crea un diagramma a barre di y in funzione di x.
polar(teta,r,
'tipo')
Crea un diagramma polare di coordinate teta e r,
utilizzando il tipo di linea, simbolo e colore specificati nella
stringa tipo
tipo..
stairs(x,y)
Crea un diagramma a gradini di y in funzione di x.
stem(x,y)
Crea un diagramma a steli di y in funzione di x.
plotyy(x1,y1,
x2,y2)
Crea un diagramma con due assi delle ordinate.
ordinate.
Diagrammi tridimensionali a linea
• Le linee nello spazio tridimensionale possono essere rappresentate con il comando
plot3
plot
3, la cui sintassi è plot
plot3
3(x,y,z)
(x,y,z).. Per esempio consideriamo la linea 3D
caratterizzata dalla seguente equazione parametrica
parametrica::
x = e -0.05t sin(t)
y = e -0.05t cos(t)
z=t
40
30
z
• La curva generata è la spirale riportata in
figura generata con le seguenti istruzioni
istruzioni::
t = [0:pi/
pi/50
50:
:10
10*pi]
*pi];
;
plot3
plot
3(exp
exp(
(-0.05
05*t)
*t).
.*sin
*sin(t),
(t),...
...
exp(
exp
(-0.05
05*t)
*t).
.*cos
*cos(t),
(t),t
t);
xlabel('x')
xlabel
('x');
;
ylabel('y')
ylabel
('y');
;
zlabel('z')
zlabel
('z');
;
grid;
grid
;
20
10
0
1
1
0.5
0
y
0
-1
-0.5
-1
x
Diagrammi tridimensionali a superficie
• La funzione z=f(x,y) rappresenta una superficie quando viene riprodotta nel
sistema di assi x,y,z. La funzione mesh permette di generare un diagramma a
superficie nello spazio 3D. Prima di utilizzare la funzione mesh
mesh,, occorre generare
una griglia di punti nel piano xy mediante la funzione meshgrid e poi calcolare la
funzione f(x,y) in corrispondenza di questi punti
punti..
• Se x=
x=[
[xmin
xmin:
:xstep
xstep:
:xmax
xmax]
] e y=
y=[
[ymin
ymin:
:ystep
ystep:
:ymax
ymax]
], allora il comando
[X,Y]=meshgrid
[X,Y]
=meshgrid(x,y)
(x,y) genererà le coordinate di una griglia rettangolare
rettangolare.. Le
matrici risultanti X e Y conterranno le coppie di coordinate di ogni punto della
griglia.. Queste coppie sono utilizzate per calcolare la funzione
griglia
funzione..
• La funzione [X,Y]
[X,Y]=meshgrid
=meshgrid(x)
(x) è equivalente a [X,Y]
[X,Y]=meshgrid
=meshgrid(x,
(x,x
x) e
può essere utilizzata se x e y hanno gli stessi minimi e massimi e le stesse spaziature
spaziature..
In questo caso per generare la griglia è possibile digitare
digitare::
[X,Y] = meshgrid
meshgrid(min
(min:
:step
step:
:max
max)
).
• Nel seguito viene mostrato come generare il diagramma a superficie della funzione
y^22)^
)^22+y^
+y^22] per -2 ≤ x ≤ 2 e -2 ≤ y ≤ 2 con una spaziatura di 0.1.
z=xe-[([(xx-y^
[X,Y] = meshgrid
meshgrid(
(-2:0.1:2);


2 2
Z = X.*exp(
*exp(-((X
((X-Y.^2).^2+Y
+Y.
.^2))
));
;
-   x- y   y 2 

mesh(X,Y,Z)
mesh
(X,Y,Z);
;
f (x, y ) = x e 
xlabel('x'),
xlabel
('x'),ylabel
ylabel('y'),
('y'),zlabel
zlabel('z')
('z');
;
Diagrammi tridimensionali a superficie
z
0.5
0
-0.5
2
2
1
0
0
y
-2
-1
-2
x
Diagrammi a contorno (contour plot)
• I diagrammi a contorno possono essere creati con la funzione contour la cui
sintassi è contour(X,Y,Z)
contour(X,Y,Z).. Anche in questo caso bisogna prima creare una
griglia di punti con la funzione meshgrid e generare la funzione
funzione..
[X,Y] = meshgrid(
meshgrid(-2:0.1:2);
Z = X.*exp(
*exp(-((X
((X-Y.^2).^2+Y
+Y.
.^2))
));
;
contour(X,Y,Z),xlabel('x'),ylabel('y');
contour(X,Y,Z),xlabel('x'),ylabel('y')
;
2
1.5
1
y
0.5
0
-0.5
-1
-1.5
-2
-2
-1.5
-1
-0.5
0
x
0.5
1
1.5
2
Diagrammi vettoriali del gradiente di una funzione
• I diagrammi vettoriali possono essere creati con la funzione quiver la cui sintassi
è quiver
quiver(X,Y,
(X,Y,px
px,
,py
py)
). Anche in questo caso bisogna prima creare una griglia di
punti con la funzione meshgrid e generare la funzione
funzione..
[X,Y] = meshgrid
meshgrid(
(-2:0.1:2);
Z = X.*exp(
*exp(-((X
((X-Y.^2).^2+Y
+Y.
.^2))
));
;
[px
px,
,py
py]
] = gradient
gradient(Z,
(Z,0
0.1,0.1);
quiver(X,Y,
quiver
(X,Y,px
px,
,py
py)
)
2
1.5
1
0.5
0
-0.5
-1
-1.5
-2
-2
-1.5
-1
-0.5
0
0.5
1
1.5
2
Funzioni per diagrammi tridimensionali
Funzione
Descrizione
contour(X,Y,Z)
Crea un diagramma a contorno (curve di livello).
mesh(X,Y,Z)
Crea un diagramma tridimensionale a superficie.
meshc(X,Y,Z)
Come mesh
mesh,, in più traccia un diagramma a contorno sotto la
superficie.
meshz(X,Y,Z)
Come mesh
mesh,, in più traccia una serie di linee di riferimento
verticali sotto la superficie.
surf(X,Y,Z)
Crea un diagramma tridimensionale a superficie la cui
griglia ha pannelli opachi.
surfc(X,Y,Z)
Come surf
surf,, in più traccia un diagramma a contorno sotto la
superficie.
Crea le matrici X e Y dai vettori x e y per definire una griglia
[X,Y]=meshgrid(x,y)
rettangolare.
[X,Y]=meshgrid(x)
Equivale a [X,Y]=meshgrid(x,x)
waterfall(X,Y,Z)
Come mesh
mesh,, con la differenza che genera linee di griglia in
una sola direzione.