💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
matlab可以不启动图形界面运行,比如 ``` matlab -nodesktop -nosplash ``` 或者 ~~~undefined matlab -nojvm -nosplash ~~~ matlab程序也可以在命令行里直接运行,只需要使用 -r 选项。比如运行当前目录下的example.m ~~~undefined matlab -nodesktop -nosplash -r example ~~~ 或者 ~~~undefined matlab -nojvm -nosplash -r example ~~~ 或者 ~~~undefined matlab -nodisplay -r example ~~~ 可以将如下命令加到~/.bashrc文件 ~~~bash alias mrun='matlab -nodesktop -nosplash -r' ~~~ 这样下次(或者执行source ~/.bashrc)之后就可以直接 ~~~undefined mrun example ~~~ 来在命令行运行matlab文件。 如果使用 -nodisplay -r 选项运行,当程序中有figure()命令时会出错,可以使用如下选项抑制图形的显示: [figure](https://link.jianshu.com?t=http://www.mathworks.com/access/helpdesk/help/techdoc/ref/figure.html)('visible','off'); 并使用如下命令将图形输出到文件: [print](https://link.jianshu.com?t=http://www.mathworks.com/access/helpdesk/help/techdoc/ref/print.html)('-deps','example.eps'); 或者 ~~~bash hgsave('example.fig'); ~~~ 有关matlab startup option 和 command line 运行 在 UNIX 下 \-nodesktop 启动jvm(Jave Virtual Machine),不启动desktop,但help 界面,preferences界面等仍可通过cmdline 调出,即jvm启动但不启动desktop,可以启动其他显示;但是matlab不会在cmd history记录本次执行的命令 \-nodisplay 启动jvm,不启动desktop,不启动任何显示相关,忽略任何DISPLAY 环境变量;即jvm启动但不能显示 \-nojvm 不启动jvm,则与之相关的一切活动将无法进行,包括图形界面显示,help 界面,preferences界面等 即jvm不启动故不能显示 \-nosplash 只是不显示启动时的log画面,jvm,desktop等正常启动 对UNIX 而言,推荐通过Desktop > Desktop Layout > Command Window > Only 设置只显示 command-line interface 而 不要用-nodesktop (why?) 在Windows下 对windows而言,-nodisplay 似乎无效,还是会显示desktop; -nojvm, -nodesktop 不显示desktop,但是会出现简洁的command-line 窗口,也就是说并不会完全没有图形界面,无法像linux一样,只在cmdline操作用Desktop > Desktop Layout > Command Window > Only 设置只显示 command-line interface 后,其他窗口并不会消失 另外 : \-r 运行matlab cmd命令,多条命令相互用分号或逗号隔开(空格不行),用双引号引起;一条命令可以不用双引号。 这多用在批处理模式下,所运行的文件必须在matlab的启动目录下或者在其搜索路径上,且不能带有路径名和后缀名,-logfile 保存cmdline输出到文件 ## fish shell脚本实现 ``` function mmatlab string match '*.m' $argv && #匹配 .m文件 test -f "$argv" && # 看看文件是否存在 cd (dirname $argv)&& set src (string split -r -m1 / $argv ) && #把路径前缀去掉 set src (string replace '.m' '' $src[2]) && #去掉文件 .m 的后缀 echo $src && matlab -nosplash -nodesktop -r $src #调用matlab程序 end ```