2

嗨,我希望这个问题符合社区准则。在 Matlab 中工作时,如果命令窗口有选项卡(很像 Linux 中的大多数终端仿真器),我将非常感激。在 Matlab 中可用还是我必须运行不同的 Matlab 实例?

我正在运行一个生成绘图的系统,因此无法通过 -nojvm 在基于文本的模式下运行 Matlab。

编辑:有没有办法获得这样的功能,或者我必须等待 Mathworks 醒来并实现这个简单、省时的工具。

嗯,我认为 Matlab 的工作方式(使用工作区和编辑器)选项卡在性能方面可能没有那么有益,而不是仅仅运行一个新的 Matlab 实例。

4

3 回答 3

0

据我所知,没有这样的功能。

尽管您知道您可以使用该-nodesktop标志在当前控制台中运行 Matlab 并且仍然能够调出绘图吗?

于 2012-05-19T14:28:01.853 回答
0

好吧 - 取决于你打算用标签做什么。您确实有文件编辑器、变量编辑器的选项卡。但我想你的意思是命令窗口。

我有时会打开两个或更多的 Matlab 实例——一个做一些计算,另一个做一些观察和快速的东西——但我不认为它是可取的。

我发现反对使用多个实例,偏好和路径会定期“不可用”(比如每月一次)。

但是由于 Matlab 是“单”线程的 - 在计算时,几乎不可能执行简单的任务,例如编辑代码或在同一实例中打开文件。如果它有标签,我想它会更糟。我认为这个问题深深地存在于 Matlab 的工作原理中,因此不会很快改变。

于 2012-05-19T15:43:07.507 回答
0

在 Linux 中,您可以使用 command 派生新的 MATLAB 实例,unix并将要运行的 MATLAB 命令作为命令行参数传递。如果您添加&unix输入字符串的末尾,则新的 MATLAB 实例将成为后台进程,因此通过这种方式,您可以从一个 MATLAB 命令窗口在多个 MATLAB 实例中运行命令(带输出),打开一个新的 MATLAB 实例以执行命令并输出。

这是代码:

多线程.m:

function multithread(MatlabCommand)
% this is a function to create a new MATLAB instance and run a command in it.
unix([ 'matlab -desktop -r ', MatlabCommand, ' &' ]);
return

测试功能.m:

function testfunction()
fprintf('one two three.\n');
return

然后您可以通过这种方式在新实例中运行 MATLAB 命令:multithread('testfunction');.

于 2012-05-19T20:36:04.327 回答