【问题标题】:Matlab fails to run a script when scheduled with Task Scheduler使用任务计划程序计划时,Matlab 无法运行脚本
【发布时间】:2014-01-27 21:50:41
【问题描述】:

我正在尝试启动 Matlab 并使用 Windows 任务计划程序运行在特定时间安排的脚本。

如果我使用计划任务,我可以看到 Matlab 正在启动,但最后一次加载脚本失败并返回以下错误

??? Unexpected Matlab operator.

你知道它是什么以及为什么吗?

我正在使用以下语法

c:\app\matlab\bin\matlab.exe -r c:\MyURL\ScriptFile.m

如果我手动加载脚本并运行它,它会告诉我文件不在路径中,所以让 ms 选择

  • 更改当前目录
  • 将文件夹添加到路径

两种选择都可以,脚本运行良好。

【问题讨论】:

    标签: scheduled-tasks matlab


    【解决方案1】:

    Matlab 在其主目录中启动,-r 要求您的函数用引号引起来,这就是您收到错误的原因。

    而且你需要先切换到你的工作区,语法如下:

    matlab -sd pathToYourWorkspace -r "function(parameters)"
    

    也许你也想避免整个Matlab工作环境的完全加载,所以在最后加上:

    -nodesktop -nosplash
    

    如果您按计划运行任务,您会执行多次吗?你知道上面的每个函数调用都会打开一个新的 Matlab 实例吗? This question 可能会有所帮助。


    来自 cmets:当然,您可以使用命令 run 来调用脚本,无论它在哪里。

    "run('c:\MyURL\ScriptFile.m')""functionName(YourArgs)" 的示例

    因为run 是一个函数,而字符串'c:\MyURL\ScriptFile.m' 是它的参数。在这种情况下,通常不需要更改工作区。

    【讨论】:

    • 您的建议是正确的 - 但问题的原因实际上是“-r”参数直接传递给 MATLAB 进行评估 - 所以如果您输入 @ 就会看到错误987654330@ 在 MATLAB >> 提示符下。
    • 嗨。要运行我调用的脚本文件 -r "run('c:\MyURL\ScriptFile.m')" 而调用函数只需调用 -r "functionName" 或者,如果需要参数 -r "functionName(YourArgs)" .
    • @AbruzzoForteeGentile: "run('c:\MyURL\ScriptFile.m')""functionName(YourArgs)" 的一个例子,因为run 是一个函数和字符串'c:\MyURL\ScriptFile.m' 它的参数;)
    • 知道了:非常感谢您的帮助。
    猜你喜欢
    • 2018-12-02
    • 1970-01-01
    • 2017-06-21
    • 2020-08-07
    • 1970-01-01
    • 2017-03-17
    • 1970-01-01
    • 2021-09-17
    • 2015-07-22
    相关资源
    最近更新 更多