Matlab - Error usando un handles
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 También te puede interesar...
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 correa.dave30@gmail.com Servicios de Programación Matlab http://fismatlab.blogspot.com/
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
Bueno Dave, ya probé tu sugerencia pero no funcionó, si se te ocurre otra solución la aceptaré agradecida. Saludos, Lorena
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.
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
Listo gente, problema resuelto, el error era que estaba declarando mal una variable. Gracias por las segerencias! Saludos Lorena
Hola Lorena; Me da mucho gusto que hayas solucionado tu problema, cualquier cosa siempre encontraras en el foro al menos una intensión de ayuda. Saludos Dave Correa correa.dave30@gmail.com Servicios de Programación Matlab http://fismatlab.blogspot.com/ Mas de 8 colores en matlab quiero sacar un dato de cada doce de un vector columna. como lo hago? |