Linux下Matlab文件关联

Linux下安装完Matlab软件之后往往发现,没有图标,没有文件关联,甚至有些人都找不到命令。这给日常Linux桌面下使用matlab带来一些麻烦。另外matlab的主程序也比较奇怪,不支持直接打开文件的方式,不过通过-r的选项来运行matlab代码,这给Linux关联相关文件如.fig .mat .m带来了新的方法

1 实现思路

基本准备:matlab已安装完毕,gnome/unity桌面,KDE桌面这个方法方面表示不清楚。

基本思路:
1. 写自定义脚本,使得该脚本识别并打开各种文件。
2. 写desktop文件,制作启动图标
3. 关联启动图标和相应的文件

2 实现方法

2.1 确认matlab安装

确认matlab安装并路径已加入到env中,验证方法:

$ matlab

如果能打开matlab主程序,就可以了。

2.2 自定义脚本实现

写自定义脚本,脚本的内容如下所示:

#!/usr/bin/env bash

if [ "$1"x == x ];then
    matlab -desktop
    exit
fi
filetype=${1##*.} #获取尾辍
echo ${filetype}
if [ "${filetype}"x == "fig"x ];then
    matscript_fig="open('${1}')"
    matlab -desktop -r "${matscript_fig}"
elif [ "${filetype}"x == "m"x ] || [ "${filetype}"x == "mat"x ];then 
    matlab -desktop -r "open('${1}')"
else
    notify-send "MatLab can't support the file type!"
    echo  "Can't support the file type!"
fi
exit

将脚本的内容保存为”matlabopen”,然后加上可执行的权限,丢到PATH目录下。

$ chmod +x ./matlabopen
$ sudo cp ./matlabopen /usr/bin

其中/usr/bin只是可选择的PATH目录,其它的目录(如/usr/local/bin或之前添加过的matlab的bin目录),自行添加PATH目录亦可,添加方法(添加/home/username/binh目录):

$ echo 'export PATH=/home/username/bin:$PATH' >> ~/.bashrc
$ source ~/.bashrc

这个时候可看看是否可以执行:

$ matlabopen

如果正常打开matlab程序,说明基本正常,否则就要检查一下PATH设置的一些问题。

2.3 Desktop文件写法

新建一个matlab.desktop文件,内容如下:

[Desktop Entry]
Version=1.0
Encoding=UTF-8
Name=Matlab R2014b
Comment=The Language of Technical Computing 
Type=Application
Exec=/usr/bin/matlabopen %F
Icon=/usr/local/MATLAB/R2014b/cefclient/bin/glnxa64/res/matlab_icon.png
Categories=Engineering

其中比较值得注意的是Exec和Icon这两个先项,Exec表明可执行文件的位置,而Icon则表明显示的图标的位置,自然matlab内部有着一个自己的图标,就在相应的目录下。事前都要确定一下两个位置的文件是否存在。
然后将matlab.desktop文件复制到~/.local/share/application/目录下,加上可执行的权限即可。

$ chmod +x ./matlab.desktop
$ cp ./matlab.desktop ~/.local/share/application/

这个时候基本上就可以搜到matlab的图标文件(在ubuntu就是dash中)了,可以试试点击打开它。

2.4 关联文件类型和matlab

由于matlabopen中只支持了.m,.mat和.fig三种文件尾辍,所以一般也只需要关联三种文件类型即可。关联方法最为简单,只需要使用右键找到matlab打开相应的文件尾辍就行。
实际上,Linux下文件关联要是靠mime的,不过这个过程解释起来较为麻烦,本文不再详叙。

3 总结

一事通,百事通,本次虽以matlab为例,解决文件关联的问题,然而如果遇到类似的问题,也是很好解决的,毕竟原理方面是相通的。

此条目发表在LINUX, 软件安装分类目录,贴了标签。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。