我正在使用如下命令行字符串运行 MATLAB:
C:\<a long path here>\matlab.exe -nodisplay -nosplash -nodesktop -r "run('C:\<a long path here>\mfile.m');"
m 文件包含一个 plot()
在 x-y 平面上绘制一条简单曲线的函数。
m 文件成功运行并使用我在上面指定的命令行字符串绘制绘图。但是,每次我运行此命令时,都会出现一个名为“MATLAB 命令窗口”的窗口以及绘图。
如何让“MATLAB 命令窗口”不出现,以便只有绘图可见。
“MATLAB 命令窗口”如下所示:
最佳答案
如果您从 Windows 上的另一个程序运行 Matlab,您可以使用 Matlab COM Automation Server 运行它. ActiveX 控件有一个 Visible 属性,可以让您使命令窗口不可见,但看起来它使绘图保持可见。
这是一个如何使用另一个 Matlab 作为 Controller 的示例。
ml = actxserver('Matlab.Application');
ml.Visible = false;
ml.Execute('surf(peaks)');
或者在 VBScript 中。
Set ml = CreateObject("Matlab.Application")
ml.Visible = false
ml.Execute("surf(peaks)")
ml.Execute("pause(4)")
无论如何,这种交互模式可能更符合您的需求,具体取决于您的工作流程的结构,因为它可以让您启动 Matlab 进程一次并在其上发出许多绘图请求,从而节省启动成本并让您拥有多个绘图立即可见。
如果您仍想从命令行调用它,只需使用上述 VBScript 代码通过 .vbs 包装器脚本运行它,但调用 run('...\mfile.m')
而不是 surf(peaks)
。您的 mfile.m 将需要一些 GUI 逻辑,使其在用户关闭绘图之前一直阻塞,替换 pause
调用,因此它不会在用户完成查看之前消失。
关于windows - 从命令行运行 m 文件时如何隐藏 "MATLAB Command Window"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6717688/