停止执行一个函数和一个按钮(指导)

55视图(30天)
你好!
我有一个计划,分析一系列图像中提取数据。现在,我被要求做一个gui为了更容易使用。我已经困在我所说的程序本身的一部分从gui(的时刻,是一个单独的程序(m文件)。
程序的调用是容易的,它的工作原理。但是,过程是漫长的,有时用户想要阻止它,例如,为了改变配置。我不能取消的部分。这是一个计划我有什么,我想要什么
(指导)
按钮- >调用程序。(和它运行)
button2 - >停止程序。(这并不工作)通过改变“关闭”变量为1
(program.m)
虽然我<数量的图片如果'关闭' = = 1 - >退出程序如果没有- >分析我的形象
提前感谢您的时间和你的反应

接受的答案

阿方索Nieto-Castanon
阿方索Nieto-Castanon 2015年5月24日
编辑:阿方索Nieto-Castanon 2015年5月24日
在程序中使用drawnow。m处理循环刷新事件队列所以你按钮回调会与评估(否则按钮回调才会被评估项目。完成它的计算)。
当然,除此之外,你需要确保你的 关闭 从内部变量访问计划。m和按钮的回调函数实际上是同一变量在同一个workspaceworkspace。一个简单的方法是类似的:
引导设置按钮回调:
“集(gcbo,“用户数据”,1)”
和程序。米用类似:
集(handlepushbutton,“用户数据”,0);
i = 1;
我< numberofimages
%你的迭代计算
drawnow
如果get (handlepushbutton,“用户数据”)%停止条件
打破;
结束
我=我+ 1;
结束
6个评论
阿方索Nieto-Castanon
阿方索Nieto-Castanon 2015年5月25日
编辑:阿方索Nieto-Castanon 2015年5月25日
如果取消行动没有工作,而你在命令窗口中看到 集(gcbo,“用户数据”) 显示,可能意味着你按钮回调简单 显示 这条线,而不是 执行 它。你的回调执行这条线,您可以:
)编辑的属性按钮,设置回调属性 字符串
“集(gcbo,“用户数据”,1)”
(单引号如上显示;当回调属性的uicontrol对象是一个字符串,matlab将评估该字符串时回调操作生成)
或者b)编辑的属性按钮,设置回调属性 函数处理
@btnStop_Callback
然后在函数btnStop_Callback类型的主体
集(gcbo,“用户数据”1);
(显示在这里,即没有最初的报价或双单引号的其他例子;当回调的一个uicontrol对象是一个函数处理,是指导在默认情况下,matlab时调用的回调函数处理回调操作生成)
我的猜测是,你可能已经离开按钮回调属性设置为一个函数处理如上以防(b),然后在这个函数体包含字符串的集合(gcbo“用户数据”1)”(如例(a)上图),所以Matlab最终只是在命令窗口中显示这一行当回调操作生成……

登录置评。

更多的答案(2)

图像分析
图像分析 2015年5月24日
我还没有找到一个方法和一个按钮。用它来设置一个标志,如“finishNow”,你可以检查你的密集循环,似乎并不工作。唯一我能得到这样的工作是有一个复选框。所以你喜欢做些什么
%明显标志并使其可见。
集(handles.chkFinishNow,“价值”,0);
集(handles.chkFinishNow,“可见”,“上”);
%的密集的循环
k = 1: 1000000
%重型代码。
%在循环,看看用户想要辞职
如果get (handles.chkFinishNow,“价值”)
%的用户检查了盒子
打破;%退出循环
结束
结束
%明显标志,让它看不见的。
集(handles.chkFinishNow,“价值”,0);
集(handles.chkFinishNow,“可见”,“关闭”);

类别

找到更多的在迁移向导的应用帮助中心文件交换

标签

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!