Matlab - Ayuda funcion surf

   
Vista:

Ayuda funcion surf

Publicado por DvS (4 intervenciones) el 05/11/2009 12:12:48
Estoy intentando usar la funcion surf para realizar un diagrama 3d y tengo algun fallo que no consigo ver. El codigo es el siguiente:

tita=linspace(-pi/2,pi/2,100);
rho=linspace(0,2*pi,100);
h=ent*pi; %ent es un parametro de entrada de la funcion

fun=(cos(h*cos(tita))-cos(h))./sin(tita);
aux=fun.^2;
sol=aux./max(aux);

%paso a parametricas

x=sol.*sin(tita).*cos(rho);
y=sol.*sin(tita).*sin(rho);
z=sol.*cos(tita);

surf(x,y,z)

Y me da un warning
Warning: Matrix dimensions must agree, not rendering mesh.

A ver si alguien puede ayudarme..
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Ayuda funcion surf

Publicado por ramiro (54 intervenciones) el 06/11/2009 19:16:56
DvS:
Prueba con estas modificaciones, ya comprobé que funciona pero espero que sea lo que hayas querido graficar.
tita=linspace(-pi/2,pi/2,100);
rho=linspace(0,2*pi,100);
[rho,tita]=meshgrid(rho,tita);
h=ent*pi; %ent es un parametro de entrada de la funcion
fun=(cos(h*cos(tita))-cos(h))./sin(tita);
aux=fun.^2;
sol=aux./max(max(aux));
%paso a parametricas
x=sol.*sin(tita).*cos(rho);
y=sol.*sin(tita).*sin(rho);
z=sol.*cos(tita);
surf(x,y,z)
De hecho, el primer error lo marca en la linea donde se define sol y es provocado por el significado de max(A) cuando A es una matriz, lo que hice fue modificar el divisor para obtener un sólo valor que representa el máximo de todos los elementos de A, si quisieras utilizar en el denominador una matriz con todos los elementos igual al máximo, te sugiero d=max(max(aux)), D=d*aux./aux.
Saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda funcion surf

Publicado por dvs (4 intervenciones) el 07/11/2009 12:51:57
Ya consegui arreglarlo ayer, lo puse aqui pero no salio.
Es como tu has dicho, me faltaba el meshgrid y sacar bien el maximo de la matriz.
La que dibuja es un toroide :D

Un saludo y muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Ayuda funcion surf

Publicado por ramiro (54 intervenciones) el 07/11/2009 17:05:00
Que bien que ya esté resuelto, al contrario, gracias a tí por acceder al foro y por compartir tan bonita gráfica.
Saludos y hasta la próxima.
Ramiro
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar