首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在后台重复运行Matlab .m文件?

如何在后台重复运行Matlab .m文件?
EN

Stack Overflow用户
提问于 2020-01-12 08:52:16
回答 2查看 812关注 0票数 0

我有一个用MATLAB写的项目。它有像Main.m这样的主文件,我想在后台的每一个1秒上重复运行Main.m。我不想看到任何显示和打开从MATLAB窗口。我该怎么做?

EN

回答 2

Stack Overflow用户

发布于 2020-01-12 09:43:41

要做到这一点,有两个步骤。首先,编写一些m脚本,它每1s调用一次主函数。如果您的主函数需要一些时间来计算,您可以通过toc获取时间是非常重要的。另一种选择是timers,它避免任何时间漂移(循环通常略高于1s,计时器平均为1s )。

一旦你的MATLAB知道该做什么,问题是谁启动它。有一个-batch选项:

非交互地执行MATLAB脚本、语句或函数.MATLAB:

screen

  • Executes statement

  • Disables

  • 启动时不显示桌面

  • ,不显示对

工具箱的启动更改,将

  • 日志文本缓存到标准输出,而stderr

  • 不显示对话框

F 220

如果脚本成功执行,则使用退出代码0自动退出。否则,MATLAB将终止一个非零的退出代码.

语句是用双引号括起来的MATLAB代码。如果语句是MATLAB函数或脚本的名称,则不要指定文件扩展名。任何必需的文件必须在MATLAB搜索路径上或在启动文件夹中。

在非交互式脚本或命令行工作流中使用-batch选项。不要在-r选项中使用此选项。

若要测试MATLAB的会话是否以批处理模式运行,请调用batchStartupOptionUsed函数。

示例:-batch "myscript“

这意味着MATLAB不会打开任何窗口,而是在调用命令行中看到任何输出。它在LINUX上的外观:

代码语言:javascript
复制
x@y ~ $ matlab -batch "1+1"

ans =

     2
票数 2
EN

Stack Overflow用户

发布于 2020-01-12 09:14:25

假设Main.m中有一个顶级函数,您希望每1秒执行一次,一种可能性是启动Matlab的一个实例,并创建另一个脚本,在一个永久循环中调用函数,暂停1秒(确保另一个脚本在PATH中有Main.m文件,这样它就可以看到它)

函数run_main_forever(),而真正的my_function()暂停(1)结束

您可以让一个.bat文件在后台启动matlab并运行如下脚本:

代码语言:javascript
复制
matlab -nodesktop -nosplash -r "cd('C:\Path\To\'); run_main_forever();"

有关在没有桌面的情况下启动MATLAB的更多详细信息,请参见此链接:https://blogs.mathworks.com/community/2010/02/22/launching-matlab-without-the-desktop/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59702312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档