Matlab - Pasar parametro en GUIDE

   
Vista:

Pasar parametro en GUIDE

Publicado por Zuri (24 intervenciones) el 09/01/2008 15:34:26
Hola a todos!

Necesito por favor ayuda a la hora de pasar parámetros de una ventana a otra de guide. Tengo varios radiobuttons, y tengo que pasar todos a la siguiente ventana. Una vez en la segunda ventana, en función de cuál de ellos esté activado tiene que aparecer un mensaje distinto en un edit text.

Os agradecería por favor que alguien me explicase cómo pasarlos de la primera ventana a la segunda y cómo acceder a su valor (si es 1 o 0) en la segunda ventana.

Muchas gracias a todos y Feliz 2008!!
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:Pasar parametro en GUIDE

Publicado por Kike (304 intervenciones) el 09/01/2008 20:58:27
En el archivo m de los radiobuttons:

1- En cada callback de los radiobuttons:
boton_radio(handles); % llama a la función boton_radio

2- Creamos la función boton_radio:
function boton_radio(handles)
global radio
% Esta función ve cuál de los radiobuttons está activo, suponiendo que éstos
% están agrupados en un panel de botones
if get(handles.radiobutton1,'Value')
radio=1;
elseif get(handles.radiobutton2,'Value')
radio=2;
elseif get(handles.radiobutton3,'Value')
radio=3;
end

En el archivo m del texto de mensaje:
global radio
switch radio
case 1,
set(handles.edit1,'String','El radiobutton 1 está activo');
case 2,
set(handles.edit1,'String','El radiobutton 2 está activo');
case 3,
set(handles.edit1,'String','El radiobutton 3 está activo');
end
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:Pasar parametro en GUIDE

Publicado por Zuri (24 intervenciones) el 09/01/2008 22:23:06
Hola Kike!!

Muchas gracias por responder. He intentado hacer lo que tú me has dicho pero me da error. He hecho lo siguiente:

Ventana 1 (la de los radiobutton)

En Opening_Fcn he definido
global opcion;

y luego le doy a opcion un valor del 1 al 4 en función del radio button seleccionado. Luego, le doy a un botón y voy a la ventana dos (no le paso ningún parámetro)

Ventana 2 (la del edit txt con un mensaje que depende del radio button seleccionado)

En Opening_Fcn hago:

global opcion;
switch opcion
case 1
disp ('radio buton 1 seleccionado');
case 2
disp ('radio buton 2 seleccionado');
end

(lo he hecho con disp para que sea más sencillo de comprobar)

cuando lo ejecuto me sale en siguient mensaje de error:
??? SWITCH expression must be a scalar or string constant.
y otros errores más.

Si no es mucho abusar me podrías por favor echar una mano por favor? 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

RE:Pasar parametro en GUIDE

Publicado por Kike (304 intervenciones) el 09/01/2008 23:15:30
Este es el archivo m de la ventana de los radiobuttons, la cual tiene a los radiobuttons agrupados en un panel. Éstos no tienen callback porque primero puse el Button Group, y sobre el Button Group coloqué tres radiobuttons. Como no tiene callback, puse aparte un pushbutton y en su callback busca cuál radiobutton está activo. En su función de apertura no hice nada.

function pushbutton1_Callback(hObject, eventdata, handles)
global radio
% Esta función ve cuál de los radiobuttons está activo, suponiendo que éstos
% están agrupados en un panel de botones
if get(handles.radiobutton1,'Value')
radio=1;
elseif get(handles.radiobutton2,'Value')
radio=2;
elseif get(handles.radiobutton3,'Value')
radio=3;
end

% Llama a la función m2
m2;

* * * * * * * * * * * * * * *

Este es el archivo de la ventana del mensaje (que se llama m2). Sólo tiene un texto estático. No tiene callbacks ni otras funciones. Trabajo en la función de apertura.

% --- Executes just before m2 is made visible.
function m2_OpeningFcn(hObject, eventdata, handles, varargin)
% This function has no output args, see OutputFcn.
% hObject handle to figure
% eventdata reserved - to be defined in a future version of MATLAB
% handles structure with handles and user data (see GUIDATA)
% varargin command line arguments to m2 (see VARARGIN)

global radio
switch radio
case 1,
set(handles.text1,'String','El radiobutton 1 está activo');
case 2,
set(handles.text1,'String','El radiobutton 2 está activo');
case 3,
set(handles.text1,'String','El radiobutton 3 está activo');
end

% Choose default command line output for m2
handles.output = hObject;

% Update handles structure
guidata(hObject, handles);
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:Pasar parametro en GUIDE

Publicado por Zuri (24 intervenciones) el 10/01/2008 09:37:35
Muchas gracias Kike!!

Ya lo he hecho como me has dicho y ya me sale. Mi fallo era que en la primera ventana la variable global la declaraba en el opening_Fcn en vez de en el callback del botón. 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

RE:Pasar parametro en GUIDE

Publicado por keyle (1 intervención) el 15/06/2008 20:19:01
como accedo a un edit text
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