Premetto, prima di fraintendimenti, che il mio rapporto con matlab è per lo più occasionale, lo sto sfruttando unicamente per fare 2/3 grafici
Ho il seguente problema, devo creare dei grafici in coordinate sferiche, dopo un po' di tentativi sono arrivato al seguente codice:
- Codice:
f = '(0.1+1.5*(sin(theta))^2)*sin(theta)*cos(phi)'
g = '(0.1+1.5*(sin(theta))^2)*sin(theta)*sin(phi)'
h = '(0.1+1.5*(sin(theta))^2)*cos(theta)'
F = vectorize(f)
G = vectorize(g)
H = vectorize(h)
r = pi*(0:1:24)/24;
s = pi*(0:1:48)/24;
[theta,phi] = meshgrid(r,s);
X = eval(F);
Y = eval(G);
Z = eval(H);
surf(X,Y,Z)
Con il risultato che vedete in figura.. il risultato graficamente parlando è molto soddisfacente, il problema è il gradiente di colore, che varia in z, e giocando con le proprietà delle immagini non c'è verso di associarlo a rho.
Immagino che ovviamente sia un problema legato al codice, o meglio, ci sia qualche opzione da dare a surf o un comando più appropriato da usare.
Ho provato a dare un occhio al pacchetto sphere3d ma non ne ho ricavato molto...
Vi ringrazio in anticipo
NotteTempo