7

我正在使用我的笔记本电脑运行 MATLAB,它非常方便但速度很慢。我们有运行 MATLAB 的强大服务器,但我在笔记本电脑上使用 UI 运行应用程序更方便(而不是通过命令行运行 Matlab)。

是否可以在 Windows 上使用 UI 在本地运行 matlab,只是代码在远程服务器上运行(因此更快)?

谢谢!

4

2 回答 2

7

有几个选项浮现在脑海中,并非所有选项都能回答您提出的确切问题。鉴于您的笔记本电脑是 Windows,您可以执行以下操作之一:

  1. 使用远程桌面连接到服务器并在那里运行 MATLAB
  2. 如果服务器是 UNIX,您可以在笔记本电脑上运行 X 服务器(cygwin 有免费的)
  3. 您可以使用Parallel Computing ToolboxMATLAB Distributed Computing Server在服务器上打开一个matlabpool

选项 (1) 和 (2) 基本上意味着您通过电线将 MATLAB UI 传输到您的笔记本电脑。选项(3)与您最初要求的最相似,但matlabpool唯一在服务器上运行主体PARFORSPMD块。

于 2010-06-23T10:17:07.060 回答
1

在http://blogs.mathworks.com/desktop/2010/02/22/launching-matlab-without-the-desktop/上全面介绍了在没有 GUI 的服务器上启动 MATLAB 您还应该阅读那里的用户评论/讨论

例如,您可以使用

启动 matlab -nosplash -nodesktop -nojvm -minimize -r "testcommand,quit"

如果不使用 Java 对您的需求限制太大:

关于“-nodesktop”与“-nojvm”,还有第三个(未记录/不受支持)选项:“-noawt”。-noawt 加载 Java(从而启用 Java I/O、数据结构等)并阻止 Java GUI

那里的讨论还谈到使用未记录的com.mathworks.mde.desk.MLDesktop.getInstance.getMainFrame.hide隐藏命令行窗口,但该命令似乎不起作用

顺便说一句,您可以作为 COM 自动化服务器启动,而不是通过 Windows shell 命令启动 MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/brd0v3w.html

或通过现有的 C API 来启动 MATLAB:

http://www.mathworks.com/help/techdoc/matlab_external/f29148.html

如果您经常使用它(例如从 Web 服务中),最好将 MATLAB 的实例一直保存在内存中(因为例如 Windows 应用程序共享代码并拥有单独的数据,这可以通过避免重新加载每次脚本运行时将 MATLAB 代码写入内存)。该实例也可能是无头的(没有 UI)在服务器启动时使用此命令(例如,通过使用“regedit.exe”在 Windows 注册表中的 HKLM/Software/Microsoft/Windows/CurrentVersion/Run 中添加一个条目):

启动 matlab -nosplash -nodesktop -nojvm -minimize

于 2011-09-21T22:32:41.130 回答