如何暂时中止matlab正在运行的程序,而后重新让其继续运行剩余的程序呢?

如何暂时中止matlab正在运行的程序,而后重新让其继续运行剩余的程序呢?,第1张

1、首先运行matlab软件,工作界面显示如下,分为四大部分,右侧为命令窗口

2、然后新建M文件,在d出清袭歼的窗口中,输入禅升所需要运行的程序代码,并保存答冲文件。

3、这时在程序末尾加入一行代码:system('shutdown –s -t 60'),则运行到该代码时,电脑会自动运行关机命令,在程序运行结束后,电脑运行60秒后自动关机。

4、在代码编辑窗口中按下F5,系统会d出一个关机窗口作为提示,点击关闭。

5、如果此时想修改关机的时间,可以通过系统的“运行”命令,输入cmd后,在d出的界面中输入shutdown –a 来终止关机。然后重新设定,就完成了。

前段时间的一个问题【matlab gui 循环计算过程实现暂停和继续计算】(编号426631696194936852)是题主问的吧?

由于度娘弱智又恶心的过滤机制,后续的交流一直不顺畅(我试图通过评论说明多次被删,也看到多次有评论提醒,但打开却看不到),现把代知搭码上传到这里。

基本做法是,在进行循环之前,加上以下几句:

fig=gcf figure(fig)

setappdata(fig,'Disu_Pause',0)

set(fig,'WindowButtonDownFcn','setappdata(gcbf,''Disu_Pause'',~getappdata(gcbf,''Disu_Pause''))')

然后,在每个循环体的最里层的最前面,加上

    % 通过获取自定义的数据Disu_Pause判断是否暂停;关闭窗口则退出

    try

        while true

            if ~getappdata(fig,'Disu_Pause')

                break

            else

                pause(0.01)

            end

        end

    catch me

        return

    end

基本思想:

1、通过自定义窗口的应用数据避免使用全局变量;

2、设置窗口的WindowButtonDownFcn回调函数在点击鼠标时改变应用数据;

3、在每个搭枝拿循环中,如果状态为pause,则利用形式上的死循环进行等待(每次0.01秒,是系统时钟的精度),如果不是状态,则退出等待的循环体;

4、搭悔用try-catch结构,在关闭窗口时返回(即退出程序)。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/12327315.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存