Matlab - declarar variables en un gui

 
Vista:

declarar variables en un gui

Publicado por Vir (20 intervenciones) el 07/09/2007 12:05:06
Hola, a ver si me podéis ayudar con una dudilla. Es la siguiente: estoy haciendo un GUI en el que a través de la función 'uigetfile' cargo una imagen en un axe. Lo que quiero es, poder utilizar esa imagen en cualquier función de ese GUI como si fuera una variable, es decir, al darle a un pushbutton, poder procesarla mediante una función que tengo creada y mostrarla en otro axe del mismo GUI. El problema es que la imagen ha sido leída anteriomente en la función de cargar (dentro de ese mismo archivo .m, con el 'uigetfile'), y en la de procesar es como si no existiera esa variable.
El error que me da es "??? Error while evaluating uicontrol Callback." y me hace referencia a la función 'gui_mainfcn.m' en la instrucción 'feval(varargin{:})'.
He intentado declarar como global la imagen (global imagen) pero nada.

Si me pudiérais ayudar os lo agradecería.
Gracias por adelantado.
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:declarar variables en un gui

Publicado por Vir (20 intervenciones) el 07/09/2007 13:10:15
Acabo de solucionarlo consultando en otro post de este mismo foro, en el que se propone el uso de la declaración de variables como global. Esto es lo que yo hacía, pero el fallo estaba en que solo lo hacía en una de las funciones donde está la variable que me interesa, y no en la otra. Esa es la solución, declararla como global en todas las funciones que quiera utilizar dicha variable.
Espero que os sirva de ayuda.
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:declarar variables en un gui

Publicado por Pumy (38 intervenciones) el 10/09/2007 23:21:08
También puedes guardar la variable como un miembro de la estructura handles (por ejemplo handles.imagen). Esa estructura la reciben todos los callback como parámetro. Después de escribir en handles recuerda usar update para guardar los cambios porque si no al salir de la función los pierdes.

Otra sugerencia. Si la imagen se está mostrando en unos axes me suena que un miembro de el objeto axes es una matriz almacena la imagen. Tal vez te resultara más fácil recuperarla con get cuando la necesites y así lo que se muestra en pantalla estaría siempre actualizado con las operaciones que hagas sobre ello.
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:declarar variables en un gui

Publicado por MRS (2 intervenciones) el 23/01/2008 13:37:23
Hola a todos
Quiero controlar un motor paso a paso con Matlab a través del puerto paralelo, pero tengo un problema: me da el siguiente error:

??? Error using==>digitalio.addline
The specified line does not exist on the port.

Error in ==> port_parallel>recibir_Callback at 117
dato2=addline(judas,8:12,0,'in');

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

Error in ==> port_parallel at 17
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

La versión de Matlab es la 7.0 con la Toolbox R14. El sistema oprativo es Windows XP.
¿Alguien me puede ayudar?
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:declarar variables en un gui

Publicado por MRS (2 intervenciones) el 23/01/2008 13:38:18
Hola a todos
Quiero controlar un motor paso a paso con Matlab a través del puerto paralelo, pero tengo un problema: me da el siguiente error:

??? Error using==>digitalio.addline
The specified line does not exist on the port.

Error in ==> port_parallel>recibir_Callback at 117
dato2=addline(judas,8:12,0,'in');

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

Error in ==> port_parallel at 17
gui_mainfcn(gui_State, varargin{:});

??? Error while evaluating uicontrol Callback.

La versión de Matlab es la 7.0 con la Toolbox R14. El sistema oprativo es Windows XP.
¿Alguien me puede ayudar?
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