Matlab - problema con radiobuttons en GUI de matlab

   
Vista:

problema con radiobuttons en GUI de matlab

Publicado por Luis Manuel (21 intervenciones) el 30/05/2011 20:16:15
Hola a todos y gracias de antemano, me ha surgido un problema con una gui en matlab y por mas vueltas que le doy no encuentro la solucion.
Tengo un botton group con 3 radio buttons dentro y debajo 3 edit text. Lo que quiero hacer es lo siguiente:
Si tengo el radio button 1 seleccionado desaparece el edit text 1 pero los otros se ven. En los que se ven ingreso valores y opero sobre ellos.
Si tengo el radio button 2 seleccionado desaparece el edit text 2 pero los otros se ven.
Y lo mismo con el radio button 3.
Cuando ejecuto la gui por primera vez todo funciona bien, hace los calculos bien pero al cambiar de radio button despues del calculo da el siguiente error:
?? Error using ==> set
Invalid handle object.

Error in ==> Direct_E>uipanel1_SelectionChangeFcn at 81
set(handles.a,'Visible','off');
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

problema con radiobuttons en GUI de matlab

Publicado por Luis Manuel (21 intervenciones) el 30/05/2011 20:17:54
Se me ha olvidado poner el codigo de las funciones, son las siguientes:
Funcion del botton group:
function uipanel1_SelectionChangeFcn(hObject, eventdata, handles)
global seleccion

switch get(eventdata.NewValue,'Tag')
case 'boton_a'
set(handles.a,'Visible','off');
set(handles.text1,'Visible','off');
set(handles.b1,'Visible','on');
set(handles.text2,'Visible','on');
set(handles.p1,'Visible','on');
set(handles.text3,'Visible','on');
seleccion=1;
case 'boton_b1'
set(handles.b1,'Visible','off');
set(handles.text2,'Visible','off');
set(handles.a,'Visible','on');
set(handles.text1,'Visible','on');
set(handles.p1,'Visible','on');
set(handles.text3,'Visible','on');
seleccion=2;
case 'boton_p1'
set(handles.p1,'Visible','off');
set(handles.text3,'Visible','off');
set(handles.b1,'Visible','on');
set(handles.text2,'Visible','on');
set(handles.a,'Visible','on');
set(handles.text1,'Visible','on');
seleccion=3;

end



Y función del push button:
function REPRESENTAR_Callback(hObject, eventdata, handles)
global seleccion
if seleccion == 1
p1=handles.p1;
b1=handles.b1;
mx = handles.mx;
a = linspace(0,mx,1000);
termino_Fresnel = b1./(sqrt(2*p1));
C = mfun('FresnelC',termino_Fresnel);
S = mfun('FresnelS',termino_Fresnel);
directividad = ((64.*a.*p1)./(pi.*b1)).*(C.^2+S.^2);
axes(handles.axes1);
handles.x=a;
handles.h=plot(a,directividad);
set(handles.a,'Visible','on');
set(handles.text1,'Visible','on');

elseif seleccion == 2
p1=handles.p1;
mx=handles.mx;
a=handles.a;
b1 = linspace(0,mx,1000);
termino_Fresnel = b1./(sqrt(2*p1));
C = mfun('FresnelC',termino_Fresnel);
S = mfun('FresnelS',termino_Fresnel);
directividad = ((64.*a.*p1)./(pi.*b1)).*(C.^2+S.^2);
axes(handles.axes1);
handles.x=b1;
handles.h=plot(b1,directividad);
set(handles.b1,'Visible','on');
set(handles.text2,'Visible','on');


elseif seleccion == 3
mx=handles.mx;
p1=linspace(0,mx,1000);
a=handles.a;
b1 = handles.b1;
termino_Fresnel = b1./(sqrt(2*p1));
C = mfun('FresnelC',termino_Fresnel);
S = mfun('FresnelS',termino_Fresnel);
directividad = ((64.*a.*p1)./(pi.*b1)).*(C.^2+S.^2);
axes(handles.axes1);
handles.x=p1;
handles.h=plot(p1,directividad);
set(handles.p1,'Visible','on');
set(handles.text3,'Visible','on');
end

Gracias de antemano
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

he subido los archivos para que se comprenda mejor

Publicado por Luis Manuel (21 intervenciones) el 03/06/2011 01:27:59
He subido tanto el .fig como el .m para que se vea mejor.

El link de descarga es este: http://www.mediafire.com/?8btutk29v48uc6x

Cuando ejecuten el programa veran que hay 3 radio buttons, cuando seleccionen alguno desparecera un edit text. Escriban un numero cualquiera en cada edit text, por ejemplo, 2 y 4 y despues debajo de la grafica escriban el valor máximo de abscisas por ejemplo 10.
Cuando le den a PLOT, se habrá graficado la directividad de una antena de bocina rectangular sectorial E en función del parámetro del radiobutton seleccionado y los dos valores concretos que habian puesto debajo. Esos parámetros corresponden a dimensiones fisicas de la antena.

Hasta ahí todo bien pero si ahora intentan cambiar de radiobutton verán que aparece un error y no se puede utilizar mas el programa. Ese es mi problema con el cual llevo varios dias sin levantar cabeza.
Si alguien me pudiera dar alguna solución estaria muy agradecido.
Gracias,
Luis
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

problema con radiobuttons en GUI de matlab

Publicado por Luis Manuel (21 intervenciones) el 02/06/2011 14:36:41
podria alguien hecharme una mano? Es muy importante, 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
Imágen de perfil de JOSE JEREMIAS CABALLERO

problema con radiobuttons en GUI de matlab

Publicado por JOSE JEREMIAS CABALLERO jjcc94@hotmail.com (3432 intervenciones) el 02/06/2011 15:13:19
Hola Luis Miguel.
Enviame el codigo y a mi correo, tanto el archivo en matlab y como la grafica es decir.
archivo.m y figure.fig para poder ejecutarlo y ver que esta pasando. Ademas explica mejor tu caso. Porque nose entiende mucho.
Cuando una pregunta no es muy clara, hay veces los usuarios no te contestan a tu pregunta.


JOSE JEREMIAS CABALLERO
ASESOR DE PROYECTOS CON MATLAB
PROFESOR DE METODOS NUMERICOS CON MATLAB
PROGRAMADOR EN MATLAB
jjcc94@hotmail.com
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

problema con radiobuttons en GUI de matlab

Publicado por Luis Manuel (21 intervenciones) el 03/06/2011 01:29:03
He subido tanto el .fig como el .m para que se vea mejor.

El link de descarga es este: http://www.mediafire.com/?8btutk29v48uc6x

Cuando ejecuten el programa veran que hay 3 radio buttons, cuando seleccionen alguno desparecera un edit text. Escriban un numero cualquiera en cada edit text, por ejemplo, 2 y 4 y despues debajo de la grafica escriban el valor máximo de abscisas por ejemplo 10.
Cuando le den a PLOT, se habrá graficado la directividad de una antena de bocina rectangular sectorial E en función del parámetro del radiobutton seleccionado y los dos valores concretos que habian puesto debajo. Esos parámetros corresponden a dimensiones fisicas de la antena.

Hasta ahí todo bien pero si ahora intentan cambiar de radiobutton verán que aparece un error y no se puede utilizar mas el programa. Ese es mi problema con el cual llevo varios dias sin levantar cabeza.
Si alguien me pudiera dar alguna solución estaria muy agradecido.
Gracias,
Luis
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

problema con radiobuttons en GUI de matlab

Publicado por Luis Manuel (21 intervenciones) el 03/06/2011 01:32:07
Perdon, me he equivocado de link, el link correcto es este:

http://www.mediafire.com/?6h947xorewdhaci
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