计时器不工作

7视图(30天)
罗伯特。
罗伯特。 2023年2月20日
评论道: 罗伯特。2023年2月22日
大家好,我想知道为什么这个计时器停止,不要继续执行。怎么了?我想要webread每60秒刷新。谢谢大家
t =计时器(“TimerFcn”,“统计= false;disp(“计时器!”),
“StartDelay”、60);
开始(t)
统计= true;
(统计= = true)
webread (“https://www..etc..”。);
暂停(1)
结束

接受的答案

本杰明·克劳斯
本杰明·克劳斯 2023年2月21日
编辑:本杰明·克劳斯 2023年2月21日
@Walter罗伯森 已经指出你的文档如何 在工作区之间共享数据 ,它提供了几种方法来实现你的目标。我建议阅读文档页面。
一个快速和肮脏的方法是使用 assignin (文档页面上列出的最后一件事)。
函数doStuff ()
intervalInS = 60;
everyNowAndThen =计时器(“期”intervalInS,“ExecutionMode”,“fixedRate”,“TimerFcn”,@refresh);
everyNowAndThen.start ();
函数刷新(~ ~)
assignin (“基地”,“台”webread (“https://api........CSV”))
结束
结束
这个函数 webread (“https://api........CSV”) 将被执行,结果将存储在变量命名 资源描述 在基地工作空间(即工作区可以在命令行)。
记住,这意味着当你工作时,只要计时器运行时,该变量 资源描述 将不断被新的数据覆盖。其他任何您所作的改变将会丢失每次定时器执行。
还请记住,如果您正在运行 其他 当计时器将执行代码,你的定时器会等到其他代码就完成了。反过来也一样,如果你的计时器运行 webread MATLAB代码将执行命令,没有其他。
如果你的电话 webread 需要超过一个部分的一小部分,MATLAB将出现挂在每一分钟 webread 正在执行,可以写给你的经验。我不确定 webread 适用于 backgroundPool ,但是如果你发现自己在这种情况下,您可能想要考虑 backgroundPool 让这段代码运行独立于主MATLAB的线程。
2的评论
罗伯特。
罗伯特。 2023年2月22日
非常谢谢便雅悯
代码的工作,我不介意(资源覆盖,这正是我想要的,因为台时间间隔为60秒返回刷新数据。
橡胶草沃尔特,你的建议 backgroundPool 是有用的。

登录置评。

更多的答案(3)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023年2月20日
这表明,它是有效的。另一种方法是使用[抽搐. .toc)计算时间如果这是目的:
Tspan = 10;%时间10秒
t =计时器(“TimerFcn”,“统计= false;disp(“计时器!”),“StartDelay”,Tspan);
开始(t)
抽搐
统计= true;
(统计= = true)
webread (“//www.tianjin-qmedu.com”);
暂停(1)
结束
往往= toc;
流(的总时间(抽搐……toc]: % f \ n ',)
总时间与抽搐……toc): 10.636126
3评论
沃尔特·罗伯森
沃尔特·罗伯森 2023年2月20日
暂停(60)延迟1分钟。

登录置评。


Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023年2月20日
这是它如何可以达到:
Tspan = 240;%时间240秒
t =计时器(“TimerFcn”,“统计= false;disp(“计时器!”),“StartDelay”,Tspan);
开始(t)
Tupdated = 60;
抽搐
统计= true;
2 = 0;
(统计= = true)
2 = 2 + 1;
流(“网络阅读\ n % d次”(二);
DT = {webread (“//www.tianjin-qmedu.com”)};
暂停(Tupdated)
结束
往往= toc;
流(的总时间(抽搐……toc]: % f \ n ',)
12个评论
沃尔特·罗伯森
沃尔特·罗伯森 2023年2月21日
没有没有。

登录置评。


罗伯特。
罗伯特。 2023年2月21日
编辑:罗伯特。 2023年2月21日
没有更改的代码和刷新命令窗口工作。
ans =
1000×5表(这就是答案在命令窗口)。
但问题是,工作区是空的…没有答在表的格式。
如何添加表(ans)从命令窗口工作区吗?
这里的代码调用webread:
函数 doStuff ()
intervalInS = 60;
everyNowAndThen =计时器( “期” intervalInS, “ExecutionMode” , “fixedRate” , “TimerFcn” ,@refresh);
everyNowAndThen.start ();
函数 刷新(~ ~)
webread ( “https://api........CSV” )
结束
结束
1评论
罗伯特。
罗伯特。 2023年2月21日
编辑:罗伯特。 2023年2月21日
任何帮助吗?

登录置评。

类别

找到更多的在调试和分析帮助中心文件交换

标签

社区寻宝

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

开始狩猎!

翻译的