matlab 怎样运行m文件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 怎样运行m文件?相关的知识,希望对你有一定的参考价值。
直接用dos函数执行就可以了。
举例说,如果批处理文件名 test_bat.bat,则[s,e]=dos('test_bat');就会执行批处理文件,直到其结束才返回。这里之所以让dos返回两个参数,是为了避免标准输出信息在命令窗口中回显。
如果不希望等待执行完毕才返回,可以在命令后加一个“&”,例如:[s,e]=dos('test_bat &');会打开一个cmd窗口去执行批处理,不需要等待批处理执行完毕就会直接返回,接下来继续执行M文件的后续部分。
拓展资料
M 脚本文件中包含一族由 MATLAB 语言所支持的语句,它类似于 DOS 下的批处理文件,它的执行方式很简单,用户只需在 MATLAB 的提示符 >> 下键入该 M 文件的文件名,这样 MATLAB 就会自动执行该 M 文件中的各条语句。
调用时不要求返回变量,则将显示结果矩阵。其实在编写程序时养成一个好的习惯,无论对程序设计者还是对程序的维护者、使用者都是大有裨益的。
参考技术A 运行的方式有2种,一是在命令中心输入.m文件的名字(如果有参数,就需要给出参数);二是在.m文件编辑环境中直接运行,一般是在debug菜单项中选run或者直接按F5运行的结果也是在命令中心显示(要是是画图的话,就是figure窗口了)本回答被提问者采纳 参考技术B 文件的上面有个 向下的箭头,点一下就可以运行了!
如何在后台重复运行 Matlab .m 文件?
【中文标题】如何在后台重复运行 Matlab .m 文件?【英文标题】:How can I run Matlab .m file repetitive in background? 【发布时间】:2020-01-12 08:52:16 【问题描述】:我有一个用 MATLAB 编写的项目。它有像Main.m
这样的主文件,我想在后台每隔1 秒 重复运行Main.m
。
我不想从 MATLAB 中看到任何显示和打开的窗口。
我该怎么做?
【问题讨论】:
【参考方案1】:有两个步骤可以实现这一点。首先编写一些 m 脚本,每 1 秒调用一次您的 Main 函数。您可以 use a loop like this one. 通过 toc 获取时间很重要,以防您的主要功能需要一些时间来计算。另一种选择是timers,它可以避免任何时间漂移(循环通常略高于 1s,计时器平均为 1s)。
一旦您的 MATLAB 知道该做什么,问题就是由谁来启动它。有-batch
选项:
以非交互方式执行 MATLAB 脚本、语句或函数。 MATLAB:
在没有桌面的情况下启动 不显示启动画面 执行语句 禁用对首选项的更改 禁用工具箱缓存 将文本记录到标准输出和标准错误 不显示对话框如果脚本成功执行,则自动退出,退出代码为 0。 否则,MATLAB 以非零退出代码终止。
语句是用双引号括起来的 MATLAB 代码。如果 statement 是 MATLAB 函数或脚本的名称,不要指定 文件扩展名。任何必需的文件都必须在 MATLAB 搜索中 路径或启动文件夹中。
在非交互式脚本或命令行中使用 -batch 选项 工作流程。不要将此选项与 -r 选项一起使用。
要测试 MATLAB 会话是否以批处理模式运行,请调用 batchStartupOptionUsed 函数。
示例:-batch "myscript"
这意味着 MATLAB 不会打开任何窗口,而是在调用命令行中看到任何输出。它在 LINUX 上的样子:
x@y ~ $ matlab -batch "1+1"
ans =
2
【讨论】:
【参考方案2】:假设Main.m
中有一个***函数,您希望每 1 秒执行一次,一种可能性是启动一个 Matlab 实例并创建另一个脚本,在永远循环中调用您的函数,并使用 1第二次暂停(确保这个其他脚本在 PATH
中有 Main.m 文件,以便它可以看到它)
函数 run_main_forever() 虽然是真的 我的函数() 暂停(1) 结尾 结束
你可以让一个 .bat 文件在后台启动 matlab 并像这样运行脚本:
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/
【讨论】:
这个解决方案不适合我的目的,因为我不想打开 Matlab,我想在后台运行 Matlab(例如双击包含命令行的.bat
文件)
我更新了我的答案,包括从 .bat
文件启动脚本
您可能使用 Matlab 计时器而不是暂停/for 循环来获得更好的计时规律。 mathworks.com/help/matlab/matlab_prog/… pause
不保证在时间方面是准确的。不过,我认为您使用帮助脚本的方法是正确的。 Matlab 启动速度太慢,无法接近每秒启动一次。以上是关于matlab 怎样运行m文件?的主要内容,如果未能解决你的问题,请参考以下文章