【问题标题】:How to run matlab on the background?如何在后台运行matlab?
【发布时间】:2015-04-07 14:19:10
【问题描述】:

我目前正在使用 Matlab .m 文件的外部编辑器,以及从命令行调用 Matlab 以运行 Matlab 脚本的自定义构建系统(使用 -nosplash-nodesktop)。然而,这会产生两个问题:

1) Matlab 在运行脚本后立即关闭:我在脚本中调用的任何窗口或绘图在运行脚本后立即关闭,这显然会在几秒钟内发生。

2) 每次我运行脚本时都会有轻微的延迟,因为实际上是从头开始启动 Matlab。

所以我想知道是否可以让 Matlab 在后台运行,并且只要我想运行脚本就可以了吗?

我正在运行 Linux 64 位、Matlab 2013a 和 Sublime Text 3。

编辑:我已经使用基本脚本测试了设置:

a=5;
figure
plot(a);

EDIT2:我通过运行的 Sublime Text 构建系统调用 Matlab:

matlab -nosplash -nodesktop <[script].m

【问题讨论】:

  • 请提供您的 shell 脚本/对脚本的调用。我不记得 MATLAB 在使用 -nodesktop 运行脚本后退出。
  • 编辑了我的答案。我怀疑问题出在脚本上。
  • 我说的是用于打开 MATLAB 的 bash/sh/whatever-shell-call。我也怀疑 MATLAB 脚本是问题 ;-)
  • 对不起,我的错。我现在已经添加了。
  • MATLAB 退出的原因可能是因为使用流&lt; filename.m 会向 MATLAB 命令发送 EOF。

标签: java matlab command-line sublimetext3


【解决方案1】:

没有在某处打开交互式会话的情况下,没有办法让 Matlab 在后台运行并“随时运行脚本”。

假设您的系统有一个自定义包装器matlab-wrapper,用于在后台提交脚本。你可以这样调用你的脚本:

$ matlab-wrapper myscript.m

matlab-wrapper 可能正在做这样的事情:

#!/bin/bash
/apps/matlab14a/bin/matlab -nodesktop -nosplash -r run\ "$1",exit

甚至更多,通过qsub 或其他命令将上述脚本提交给调度程序。

关键是修改包装脚本以找到实际调用 Matlab 二进制文件的部分。如果您的系统允许,您可以复制包装脚本并对其进行修改。 (通过简单地删除 -r run\ "$1" 文本或更复杂的方式。)然后,您应该能够根据系统上的自定义配置启动交互式版本的 Matlab,并从 Matlab 命令窗口调用您的脚本。

【讨论】:

  • 所以我需要编写一个脚本来查找正在运行的 matlab 会话的 PID/标识符并提交 .m 以运行,对吗?我想 Matlab 论坛是研究这方面的更合适的地方。
  • 再次,“运行 Matlab 会话”是什么意思?我知道以交互方式向单个 Matlab 会话发出多个命令的唯一方法是让它成为一个交互式会话,然后您在 Matlab 命令窗口中键入命令。
  • 假设我使用的是 Matlab GUI。我只想使用 CLI,使用 nodesktop 选项运行。我不知道它是否可能,并且运行 (matlab -nodesktop)&amp; 它只是卡在启动图像中。
  • 这并不假定您使用的是 Matlab GUI。您应该能够以matlab -nodesktop -nosplash 调用Matlab。尝试后台处理此过程的原因是什么?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-07-09
  • 2020-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-29
相关资源
最近更新 更多