Matlab - Error usando un handles

 
Vista:

Error usando un handles

Publicado por Lorena (37 intervenciones) el 22/02/2012 19:06:53
Hola a todos, estoy trabajando con una GUI y me está saltando un error con el uso de un handles al valor que ingreso en un edit box. Cuando aprieto un botón, uso un get para obtener el valor numérico ingresado en el edit box. Lo hago de la siguiente manera, dentro de la función callback del botón:

-----------------------------------------------------------------------------------------
canal_elegido_mf_str=get(handles.canal_elegido_mf,'String');
canal_elegido_mf=str2double(canal_elegido_mf_str);
-----------------------------------------------------------------------------------------

canal_elegido_mf es el tag del edit box.

Mi problema es que cuando presiono la primera vez el botón, puedo obtener el valor del edit box sin problema, pero cuando cambio el valor y vuelvo a presionar el botón, me salta el siguiente error:


??? Error using ==> get
Invalid handle object.

Error in ==> deteccion_espigas_automatica>Realizar_correlacion_mf_Callback at 1348
canal_elegido_mf_str=get(handles.canal_elegido_mf,'String');

Error in ==> gui_mainfcn at 75
feval(varargin{:});

Error in ==> deteccion_espigas_automatica at 43
gui_mainfcn(gui_State, varargin{:});

Error in ==>
guidemfile>@(hObject,eventdata)deteccion_espigas_automatica('Realizar_correlacion_mf_Callback',hObject,eventdata,guidata(hObject))


??? Error while evaluating uicontrol Callback


No me explico cómo es que funciona la primera vez, pero luego ya no toma el handles, espero que alguien pueda ayudarme.

Gracias

Lorena
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
Imágen de perfil de Dave
Val: 497
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Error usando un handles

Publicado por Dave (1094 intervenciones) el 23/02/2012 21:44:15
Hola Lorena;

Te sugiero que utilices nombres más cortos y sin guiones, tanto para el caso de los nombres de los comando y las variables.

Espero que sea de alguna ayuda.

Saludos
Dave Correa
[email protected]
Servicios de Programación Matlab
http://fismatlab.blogspot.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

Error usando un handles

Publicado por Lorena (37 intervenciones) el 24/02/2012 15:48:23
Gracias Dave por tu sugerencia, me resulta raro que me salte este error porque en intentos anteriores no había tenido este problema, podía presionar el botón varias veces y hacía los cálculos. De todas maneras voy a intentar modificar el tag y ver si eso funciona.

Gracias!

Lorena
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

Error usando un handles

Publicado por Lorena (37 intervenciones) el 24/02/2012 16:09:45
Bueno Dave, ya probé tu sugerencia pero no funcionó, si se te ocurre otra solución la aceptaré agradecida.

Saludos,

Lorena
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
sin imagen de perfil

Error usando un handles

Publicado por geral (104 intervenciones) el 25/02/2012 23:48:32
Hola, creo que te refieres al edit text?
bueno en ese caso,

canal_elegido_mf_str=get(handles.canal_elegido_mf,'String');
canal_elegido_mf=str2double(canal_elegido_mf_str);

estan dentro del callback del edit text?
has guardado esas variables para usarlas en otro callback? ejem: global canal_eleg
esa es mi sugerencia, espero pueda ayudarte. suerte.
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

Error usando un handles

Publicado por Lorena (37 intervenciones) el 28/02/2012 17:18:58
Hola Geral, sí, estoy trabajando con una casilla donde ingreso números y luego utilizo esos valores, supongo que es un edit text.

Las sentencias:
canal_elegido_mf_str=get(handles.canal_elegido_mf,'String');
canal_elegido_mf=str2double(canal_elegido_mf_str);

no están dentro del callback del edit text, sino dentro del callback de la función que utiliza esos valores.

Luego utilizo sólo la variable canal_elegido_mf en otros callbacks, para ello los llevo usando handles, es decir, handles.canal_elegido_mf=canal_elegido_mf; y luego en la función que los uso, la llamo con el handles: canal_elegido_mf=handles.canal_elegido_mf.

De esta manera me sigue saltando el error, ¿vos me sugerís que en lugar de usar handles para llevarlo entre callbacks la declare como variable global? ¿Así podría evitar el error?

Gracias!

Lorena
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

Error usando un handles

Publicado por Lorena (37 intervenciones) el 02/03/2012 15:56:42
Listo gente, problema resuelto, el error era que estaba declarando mal una variable.

Gracias por las segerencias!

Saludos

Lorena
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