从Windows DOS提示符中运行MATLAB脚本

3
我正在尝试从Windows命令提示符中运行Matlab脚本,但有时无法执行。手动启动脚本时它可以正常运行。Matlab版本为2011a,Windows为Server 2003 SP2。细节如下:
脚本mytask.m位于E:\Production\Project内。路径已经被保存在Matlab的路径中。
当我将mytask.m放入bin文件夹中时,使用以下命令可以正常执行:
     `C:\Program Files\MATLAB\R2011a\bin>matlab -r mytask`

如果您删除它并尝试在其原始位置访问它,则脚本不会运行,尽管Matlab编辑器窗口已启动:
     `C:\Program Files\MATLAB\R2011a\bin>matlab -r "E:\Production\Project\mytask"

有任何建议请告诉我吗?谢谢。
1个回答

5

matlab -r语法

matlab -r "statement"

换句话说,您需要提供一些可执行的命令作为语句。例如:
matlab -r "run E:\Production\Project\mytask"

然而,似乎matlab不会以这种方式加载自定义路径。如果您有一些自定义路径,您可能需要在startup.m中定义它们,并将此startup.m放置在您调用matlab的目录中。
我没有亲自检查过,但如果您在startup.m中将E:\Production\Project\定义为路径,则您可能可以无问题地运行matlab -r mytask,因为mytask将被识别为用户函数/脚本。
一个startup.m的简单示例。
path(path, 'E:\Production\Project\');

2
您可以这样做:matlab -r "addpath('E:\Production\Project'); mytask" - Amro
还有一个命令行选项matlab -sd <startdir>,可以在特定目录中启动Matlab;您可以将其指向E:\Production\Project,然后路径和相对文件名将会解析。(已弃用,也可以使用包装器脚本在启动之前进行cd操作。)或者您可以编写一个包装器脚本mytask,使用mfilename('-fullpath')并自己添加路径,以使命令行更简单。 - Andrew Janke

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接