Matlab .desktop 文件

jak*_*kub 6 matlab .desktop

(这不是在 Dock 中创建启动器或类似的东西。)

当我导航到一个包含一些 Matlab .m 文件的文件夹时,只需执行

matlab myscript.m
Run Code Online (Sandbox Code Playgroud)

在终端中,它启动 Matlab,工作目录设置为文件所在的位置。

这有一些好处:如果目录中还有一个 startup.m 文件 - 因此在 Matlab 路径中 - Matlab 会注意到并运行它。

我试图用 .desktop 文件复制这个功能,所以我可以点击一个 .m 文件(被 Ubuntu 识别为目标 C...),结果与我从终端运行它一样,但没有运气。

这是我尝试过的:

我把text/x-objcsrc=Matlab.desktop/home/jakub/.local/share/applications/mimeapps.list

并在 /home/jakub/.local/share/applications

Version=1.0
Type=Application
Terminal=false
Exec=matlab -desktop
Name=Matlab
Icon=/home/jakub/Pictures/icons/Apps-Matlab-icon.png
Categories=Development
Run Code Online (Sandbox Code Playgroud)

当我点击一个 .m 文件时,它会启动 Matlab,但它不等同于从终端运行它(见上文):主要是工作目录设置为 Matlab 的默认值,而不是脚本所在的位置,并且脚本不打开,只是带有空编辑器的普通 Matlab。

我也试过这个:

Exec=matlab -desktop -r "edit %f"
Run Code Online (Sandbox Code Playgroud)

打开文件但不设置工作目录

Exec=matlab -desktop -r "cd %d"
Run Code Online (Sandbox Code Playgroud)

它改变了工作目录,但是运行Matlab之后,这意味着它不会运行startup.m中的代码(因此它不等同matlab myscript.m于在终端中执行)。

有没有什么方法可以完美地模仿matlab myscript.m从终端运行,但在桌面文件中?

yar*_*160 5

当我尝试手动设置 Matlab 时,我遇到了类似的问题。

最终,我运行:
sudo apt-get install matlab-support
并按照安装说明进行操作。这只是将 Matlab 添加到仪表板。

生成的 matlab.desktop 文件内容如下:

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Exec=matlab -desktop
Name=MATLAB
Icon=/usr/share/icons/hicolor/48x48/apps/matlab.png
Categories=Development;Math;Science
Comment=Scientific computing environment
StartupNotify=true
StartupWMClass=com-mathworks-util-PostVMInit
Run Code Online (Sandbox Code Playgroud)

要通过单击在 matlab 中打开 .m 文件,我使用 Ubuntu GUI 将其设置为使用以下命令打开这些文件:

matlab -desktop -r "open %U;"
Run Code Online (Sandbox Code Playgroud)

这都在 Matlab 中打开文件并将当前工作目录设置为文件所在的位置(至少在 Matlab 2016b 中)。

我希望这个信息帮助。