【问题标题】:Timer in matlab to repeat segments of code every few minutesmatlab中的计时器每隔几分钟重复一段代码
【发布时间】:2013-10-31 22:39:32
【问题描述】:

我有以下代码,它从链接下载 CSV 文件,然后将其保存为格式化文件:

urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Sep.csv','Weather Data.csv');
data= readtext('Weather Data.csv');

我想每 5 分钟下载一次这个文件。文件中的更新数据用于我脚本的其他部分,因此我还希望这些计算和程序的其他部分每 5 分钟自动执行一次,并更改新文件信息。

matlab 中的计时器功能调用一个函数,我宁愿将其作为循环格式执行,因为我的计算尚未保存为特定函数。

我怎样才能通过某种循环或计时器来实现这一点?

【问题讨论】:

    标签: matlab loops timer while-loop


    【解决方案1】:

    最简单的方法可能是输入一个暂停命令,pause(t) 将脚本暂停t 秒,这样您就可以拥有

    while(1)
        tic
        urlwrite('http://xweb.geos.ed.ac.uk/~weather/jcmb_ws/JCMB_2013_Sep.csv','Weather Data.csv');
        data= readtext('Weather Data.csv');
        % run the rest of the code that you need to run on the data you have downloaded
        T=toc;
        pause(300-T)
    end
    

    您可以通过按 ctrl+c 来终止循环,这将停止代码。

    希望有帮助

    【讨论】:

    • 亲爱的大卫,对于上面的代码示例,由于我没有在循环中引用任何整数值,for 语句是什么?谢谢你的帮助。我会在 pause(t) 上阅读更多内容。
    • @loco 好吧,这取决于您希望您的代码真正做什么,我只是将for 用作通用循环。如果您想无限期地运行它,那么您可以将for ... 替换为while(1),并包含一些终止条件。如果您的代码需要一些时间才能运行,那么这可能会导致问题,因为它将运行代码然后等待 5 分钟,而不是运行代码然后等到 5 分钟结束。我将编辑我的答案以说明这一点。
    • 哦,好的。我希望代码每 5 分钟永久重复一次。即脚本/程序一直在运行并不断更新新信息并使用新提取的信息执行计算。目前,脚本下载和存储数据大约需要 17 秒。谢谢。
    • 在这种情况下,while 循环是您最好的选择。只需使用while(1),但仍然包含一些终止条件(使用break 退出while 循环)。
    • 抱歉,您能解释一下为什么要使用 while(1) 而不是 while %任何其他条件吗?谢谢您的帮助。我是 MATLAB/编程新手,如果我看起来有点“慢”,我深表歉意。
    猜你喜欢
    • 2021-04-26
    • 1970-01-01
    • 2017-05-08
    • 2018-09-24
    • 1970-01-01
    • 2012-07-14
    • 2020-09-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多