从Windows命令行多次运行matlab函数

14次浏览(过去30天)
穆斯塔法Al-tekreeti"class=
穆斯塔法Al-tekreeti 2018年1月11日
回答: 史蒂文的主 2018年3月29日
我的matlab代码在内存和cpu周期方面很重,需要几天才能完成。我需要重新运行代码10次。我正在使用matlab脚本,但由于内存不足错误,机器崩溃。Matlab帮助文档推荐这类代码以节省工作空间,并经常重新启动Matlab以避免内存碎片。因此,我创建了以下简单的windows脚本来自动重启matlab:
@echo掉
/ l%%x in (1,1,10) do (
matlab-nodisplay -nojvm -nosplash -nodesktop -r "Matlab_function(,) "退出;
超时30 >空
暂停
在我看来,仍然有多个matlab实例在一起运行。我的问题是如何确保下一次调用matlab函数不发生,直到当前调用完全完成,matlab命令窗口关闭?任何想法?

答案(3)

Prasanth Sunkara"class=
Prasanth Sunkara 2018年1月22日
你好Mustafa,我的理解是你基本上想通过一个windows shell脚本每30分钟重新启动MATLAB。我建议你修改一下代码,如下所示:@Line 4: TIMEOUT /T 1800 /NOBREAK
-Prasanth
1评论
穆斯塔法Al-tekreeti"class=
穆斯塔法Al-tekreeti 2018年1月22日
你好Prasanth谢谢你的回应,问题是我的matlab函数是沉重的cpu周期和内存,因为我有随机性在代码中,我需要多次运行matlab函数和评估任何我想要的意思是,一个运行的代码可能需要2到3天,因为天matlab运行会导致内存碎片可能导致内存不足错误,建议重启matlab经常为了避免这种可能性,所以这就是这个shell脚本背后的目的,我需要运行代码,退出matlab,插入30秒的延迟,然后重新运行代码,等等。我想确保一次只有一个matlab函数在运行,但不幸的是,我仍然看到多个matlab命令窗口同时启动,这导致系统崩溃

登录评论。


本杰明Marechal"class=
本杰明Marechal 2018年3月29日
你好!
只需在命令行中添加“-wait”选项:matlab -wait -nodisplay -nojvm -nosplash -nodesktop -r "Matlab_function(,);exit"
如果没有此选项,即使matlab函数尚未完成,批处理脚本也将继续执行。
你可以通过编写命令:matlab -help来检查它,它给出:
-wait - MATLAB是由一个单独的启动程序启动
哪一个通常启动MATLAB,然后马上
退却。使用-wait选项告诉启动器
程序直到MATLAB终止才退出。
选项在需要处理
结果从MATLAB在一个脚本。呼唤
MATLAB使用此选项将阻止脚本从
继续直到结果出来。
使用"-wait",实际上并不需要超时。

史蒂文的主"class=
史蒂文的主 2018年3月29日
当你说“我正在使用matlab脚本,但由于内存不足错误,机器崩溃了。“你的意思是MATLAB崩溃,你运行MATLAB的机器崩溃,还是MATLAB抛出一个错误,表明它内存不足?”在前两种情况下,显然不应该发生这种情况,您应该将从MATLAB收到的任何崩溃日志发送给技术支持进行进一步调查。金宝app
在最后一种情况下,您试图处理的数据块有多大?您正在使用支持的版本吗金宝app 数据存储而且 它的主要目的是处理内存中无法容纳的大数据。如果您正在使用包含 如果您想尝试查看它是否避免内存不足错误,请检查安装中包含的文档,以确保您想要使用的函数得到支持金宝app .支持的函数列表金宝app 增加每个版本,所以如果你没有使用最新的版本,我之前链接到的页面上的列表将包括在你的旧版本上不起作用的功能。]

类别

了解更多输入命令帮助中心而且文件交换

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!