You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在Windows中将FIG文件关联Matlab,复用已有进程而非启动新副本?

必须可以啊!我之前被这个问题烦了好久,每次开几个FIG文件就占满内存,后来摸索出了两个靠谱的方法,亲测有效:

方法一:用VBS脚本调用已有Matlab实例(最可靠)

直接改Windows的文件关联还是会触发新的Matlab进程,所以得靠一个小脚本通过Matlab的自动化接口连接到正在运行的实例:

  • 新建一个文本文件,命名为OpenFigWithRunningMatlab.vbs,把下面的代码粘进去:
    Set Matlab = GetObject(, "Matlab.Application")
    If Err.Number <> 0 Then
        ' 没找到运行的Matlab,就启动一个新的
        Set Matlab = CreateObject("Matlab.Application")
        Matlab.Visible = True
    End If
    Matlab.Execute "open('" & WScript.Arguments(0) & "')"
    
  • 把这个脚本存到一个固定的地方(比如Matlab安装目录里,不容易丢)
  • 右键点击任意FIG文件,选「属性」→「更改」→「更多应用」→「在这台电脑上查找其他应用」,找到刚才的VBS脚本选中它
  • 以后双击FIG文件,脚本会先查有没有正在跑的Matlab:有的话直接用它打开文件,没有才启动新进程,完美解决资源浪费的问题
方法二:给Matlab开个自动化服务器的“开关”(辅助优化)

为了让脚本调用更顺畅,我们可以让Matlab启动时自动开启自动化服务:

  • 打开Matlab,点「主页」选项卡的「预设」
  • 在预设窗口里找「常规」→「MATLAB启动」,勾选「启动时启用自动化服务器」
  • 点「应用」「确定」,重启Matlab就生效了
小提示
  • 如果你的Matlab版本比较老,可能得手动在命令行输入enableservice('AutomationServer', true),然后保存预设,这样脚本才能顺利找到运行的实例
  • 脚本里已经处理了带空格的文件路径,不用担心路径有空格出错的问题

内容的提问来源于stack exchange,提问作者Dims

火山引擎 最新活动