Matlab - Ayuda MATLAB popup

 
Vista:
Imágen de perfil de Diego

Ayuda MATLAB popup

Publicado por Diego (19 intervenciones) el 17/04/2013 07:32:55
Hola, resulta que tengo que hacer una GUI para hacer una tabla de frecuencias, el asunto es que de acuerdo al tamaño de n cambio los valores que muestra un popup para segun eso contruir la tabla, creo el popup así:

if (n2<=50)
popcol = uicontrol(gcf,'Style','popup','String','AUTO|5|6|7','Units','normalized','Position',[0 0.31 0.05 0.05],'CallBack',['pop=[1,5,6,7];','w=pop(get(popcol,''Value''))']);

elseif (n2<=100)
popcol = uicontrol(gcf,'Style','popup','String','AUTO|6|7|8|9|10','Units','normalized','Position',[0 0.31 0.05 0.05],'CallBack',['pop=[1,6,7,8,9,10];','w=pop(get(popcol,''Value''))']);

elseif (n2<=250)
popcol = uicontrol(gcf,'Style','popup','String','AUTO|7|8|9|10|11|12','Units','normalized','Position',[0 0.31 0.05 0.05],'CallBack',['pop=[1,7,8,9,10,11,12];','w=pop(get(popcol,''Value''))']);

else
popcol = uicontrol(gcf,'Style','popup','String','AUTO|10|11|12|13|14|15|16|17|18|19|20','Units','normalized','Position',[0 0.31 0.05 0.05],'CallBack',['pop=[1,10,11,12,13,14,15,16,17,18,19,20];','w=pop(get(popcol,''Value''))']);

end

el hecho es que cuando lo corro en el command window todo va perfecto, y se crea el popup de acuerdo a n y w me muestra el valor al que le corresponde el valor elegido, sin embargo cuando meto esto dentro de la GUI, se crea el popup correctamente pero no puedo obtener el valor de w de ninguna forma.

Por favor alguien que me puedea ayudar..... muchas gracias de antemano.
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 DIEGO

Ayuda MATLAB popup

Publicado por DIEGO (19 intervenciones) el 17/04/2013 09:38:49
El error que me da dentro de la gui es este:

Error using handle.handle/get
Invalid or deleted object.

Error while evaluating uicontrol Callback
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
Val: 6.975
Oro
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Ayuda MATLAB popup

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 17/04/2013 17:11:53
Yo lo puesto dentro del guide y funciona normal, aunque la parte de IF END, me parece que deberías modificarlo.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
function varargout = popupmenu_1_uicontrol(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @popupmenu_1_uicontrol_OpeningFcn, ...
                   'gui_OutputFcn',  @popupmenu_1_uicontrol_OutputFcn, ...
                   'gui_LayoutFcn',  [] , ...
                   'gui_Callback',   []);
if nargin && ischar(varargin{1})
    gui_State.gui_Callback = str2func(varargin{1});
end
 
if nargout
    [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
    gui_mainfcn(gui_State, varargin{:});
end
 
function popupmenu_1_uicontrol_OpeningFcn(hObject, eventdata, handles, varargin)
n2=round(100*rand)
if n2<=50
popcol = uicontrol(gcf,'Style','popup','String','AUTO|5|6|7',...
    'Units','normalized','Position',[0 0.31 0.05 0.05],...
    'CallBack',['pop=[1,5,6,7];','w=pop(get(popcol,''Value''))']);
    pop=[1,5,6,7]
    w=pop(get(popcol,'Value'))
elseif n2>=51 && n2<=100
    popcol = uicontrol(gcf,'Style','popup','String','AUTO|6|7|8|9|10',...
    'Units','normalized','Position',[0 0.31 0.05 0.05],...
    'CallBack',['pop=[1,6,7,8,9,10];','w=pop(get(popcol,''Value''))']);
    pop=[1,6,7 8 9 10]
    w=pop(get(popcol,'Value'))
elseif n2>=101 && n2<=250
    popcol = uicontrol(gcf,'Style','popup','String','AUTO|7|8|9|10|11|12',...
    'Units','normalized','Position',[0 0.31 0.05 0.05],...
    'CallBack',['pop=[1,7,8,9,10,11,12];','w=pop(get(popcol,''Value''))']);
    pop=[1,7,8,9 10 11 12]
    w=pop(get(popcol,'Value'))
else
    popcol = uicontrol(gcf,'Style','popup',...
    'String','AUTO|10|11|12|13|14|15|16|17|18|19|20','Units','normalized',...
    'Position',[0 0.31 0.05 0.05],...
    'CallBack',['pop=[1,10,11,12,13,14,15,16,17,18,19,20];','w=pop(get(popcol,''Value''))']);
    pop=[1,10,11,12,13,14,15,16,17,18,19,20]
    w=pop(get(popcol,'Value'))
end
 
 handles.output = hObject;
guidata(hObject, handles);
 
function varargout = popupmenu_1_uicontrol_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;




Saludos.
JOSE JEREMÍAS CABALLERO
Asesorías en Matlab
programador en matlab
Servicios de programación matlab
[email protected]

http://matlabcaballero.blogspot.com

http://www.lawebdelprogramador.com/foros/Matlab/1371532-FORMA_DE_APRENDER_MATLAB.html
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