Matlab - Como detener un loop con un boton

 
Vista:
sin imagen de perfil
Val: 19
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Como detener un loop con un boton

Publicado por cesar (9 intervenciones) el 14/03/2017 16:35:21
Saludos...veran soy nuevo en este foro, asi como tambien en matlab y hace poco que vengo haciendo un pequeño proyecto con la gui de matlab. Mi programa consiste en realizar consultas a una base de datos de forma periodica, ya que la base de datos se va actualizando tambien periodicamente, y con los datos que obtengo con la consulta realizo una serie de operaciones, y el resultado lo guardo tambien la base de datos.
La manera con que estoy iniciando mi programa es atravez de un boton, que hace que entre en un bucle. Ahora quisiera saber como puedo detener mi programa por medio de otro boton, es decir que en el bucle exista una condicional que detecte cuando se haya presionado el boton de parada.
Alguien que pueda ayudarme con esto por favor, 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
sin imagen de perfil
Val: 19
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Como detener un loop con un boton

Publicado por cesar (9 intervenciones) el 14/03/2017 20:25:55
gracias por la ayuda jose, estube viendo una mejor solucion...y decidi usar un toggle button para iniciar y detener mi programa, por el momento me va bien con esto, ahora tengo otra duda acerca los toggle buttons, es posible detectar el cambio de estado de otro toggle button que no sea con el que se inicia o detiene el programa, cuando se esta dentro el bucle?
Cualquier ayuda es bienvenida, y gracias de antemano
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 JESUS DAVID ARIZA ROYETH
Val: 3.309
Plata
Ha mantenido su posición en Matlab (en relación al último mes)
Gráfica de Matlab

Como detener un loop con un boton

Publicado por JESUS DAVID ARIZA ROYETH (1818 intervenciones) el 14/03/2017 22:23:04
Es posible obtenerlo , lo que debes hacer es obtener el estado de ese toggle button dentro del ciclo, por ejemplo :

1
s=get(handles.togglebutton2,'Value');
esa línea la escribes dentro del bucle con el Tag que tengaa el otro botón y ya ahí puedes detectar si está en 0 o en 1 y de acuerdo a eso tomar una decisión

espero te sea de ayuda
un saludo
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

Como detener un loop con un boton

Publicado por JOSE JEREMIAS CABALLERO (5917 intervenciones) el 14/03/2017 22:38:13
Mismo botón se usa para iniciar el programa y también para parar el programa

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
function varargout = toggle_button_caballero2(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name',       mfilename, ...
                   'gui_Singleton',  gui_Singleton, ...
                   'gui_OpeningFcn', @toggle_button_caballero2_OpeningFcn, ...
                   'gui_OutputFcn',  @toggle_button_caballero2_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 toggle_button_caballero2_OpeningFcn(hObject, eventdata, handles, varargin)
global condicion
condicion=0;
handles.output = hObject;
guidata(hObject, handles);
 
 
function varargout = toggle_button_caballero2_OutputFcn(hObject, eventdata, handles)
varargout{1} = handles.output;
 
function togglebutton1_Callback(hObject, eventdata, handles)
global condicion
condicion=get(handles.togglebutton1,'value');
    if condicion==1
        s=0;
        while 1
            s=s+rand;
            set(handles.text2,'string', s)
            pause(0.0001)
            if condicion==0
                break;
            end
        end
    end

Saludos
JOSE JEREMIAS CABALLERO
Asesor de Proyectos con Matlab
Servicios de programación matlab


http://matlabcaballero.blogspot.com
https://www.facebook.com/matlabcaballero/
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
Val: 19
Ha aumentado su posición en 2 puestos en Matlab (en relación al último mes)
Gráfica de Matlab

Como detener un loop con un boton

Publicado por cesar (9 intervenciones) el 15/03/2017 00:10:57
muchisimas gracias jose, muy bueno tu aporte me sirvio de mucho
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

Como detener un loop con un boton

Publicado por nmv (1 intervención) el 03/02/2019 07:39:30
Brother me sacaste de una duda que tenía hacia tiemmmmpo, sobretodo por lo de la linea de pause, muchas veces no me funcionaban los loops en las guide por la velocidad misma del loop, mil gracias!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar