Llamar función desde GUI
Publicado por Javier (2 intervenciones) el 19/03/2014 13:47:47
Saludos a todos.
Tengo el siguiente problema:
Estoy haciendo una gui en la que el usuario introduce una función de dos variables en un edittext [ec] y con un pushbutton [graficar] se grafica. El tema es que no se como hacer para que me reconozca la función (superficie a graficar) desde el edittext [ec]
(li,paso y ls son otros edittext para que el usuario elija el intervalo, pero con eso no hay problema)
function graficar_Callback(~, eventdata, handles)
exti=str2num(get(handles.li,'String'))
pas=str2num(get(handles.paso,'String'))
exts=str2num(get(handles.ls,'String'))
[x,y]=meshgrid(exti:pas:exts); %dominio
f=(get(handles.ec,'string'));
f;
surf(x,y,z);
shading flat;
rotate3d on %permite girar la sup
xlabel('Eje X'),ylabel('Eje Y'),zlabel('Eje Z')
Nota1: Ya probé el código y si funciona cuando directamente yo defino la función en el script, es decir, que cambio las líneas:
f=(get(handles.ec,'string'));
f;
por:
z=exp (-(x.^2 + y.^2))
Pero obviamente no me sirve, porque la idea es que el usuario ingrese la función que quiera.
Nota2: Mis conocimiento en matlab son bajos así que agradecería en el caso de que me den un ejemplo,
una breve explicación sobre la función que vayan a usar, o cual es el mejor modo de hacer lo que quiero, etc.
Desde ya muchas gracias.
Tengo el siguiente problema:
Estoy haciendo una gui en la que el usuario introduce una función de dos variables en un edittext [ec] y con un pushbutton [graficar] se grafica. El tema es que no se como hacer para que me reconozca la función (superficie a graficar) desde el edittext [ec]
(li,paso y ls son otros edittext para que el usuario elija el intervalo, pero con eso no hay problema)
function graficar_Callback(~, eventdata, handles)
exti=str2num(get(handles.li,'String'))
pas=str2num(get(handles.paso,'String'))
exts=str2num(get(handles.ls,'String'))
[x,y]=meshgrid(exti:pas:exts); %dominio
f=(get(handles.ec,'string'));
f;
surf(x,y,z);
shading flat;
rotate3d on %permite girar la sup
xlabel('Eje X'),ylabel('Eje Y'),zlabel('Eje Z')
Nota1: Ya probé el código y si funciona cuando directamente yo defino la función en el script, es decir, que cambio las líneas:
f=(get(handles.ec,'string'));
f;
por:
z=exp (-(x.^2 + y.^2))
Pero obviamente no me sirve, porque la idea es que el usuario ingrese la función que quiera.
Nota2: Mis conocimiento en matlab son bajos así que agradecería en el caso de que me den un ejemplo,
una breve explicación sobre la función que vayan a usar, o cual es el mejor modo de hacer lo que quiero, etc.
Desde ya muchas gracias.
Valora esta pregunta


0