美文网首页SublimeSublime Text程序员
配置Sublime作为MATLAB的编辑器

配置Sublime作为MATLAB的编辑器

作者: 听这一刻的晚风 | 来源:发表于2016-06-08 23:35 被阅读6782次

    最近使用MATLAB时发现它自带的编辑器不太好用,特别是在不同平台切换时会出现编码错误。
    例如MATLAB R2014a,在Ubuntu平台采用UTF-8编码,但在Windows平台采用的却是GBK编码。这样在不同平台切换时就会产生乱码。虽然MATLAB自带的编辑器也能在一定程度上解决这个问题,但没有Sublime方便。
    因此,我打算使用Sublime来作为MATLAB的编辑器。经过网上搜索和自我摸索,最终实现了Sublime编辑+MATLAB命令行(terminal)运行的开发环境搭建。

    前期准备

    • MATLAB R2014a (Windows或Linux平台,这里以Win10和Ubuntu 16.04为例)。有关安装过程这里不再赘述。
    • Sublime Text 3

    配置过程

    1. 新建Build System

    在Sublime中选择Tools -> Build System -> New Build System,系统会创建一个JSON文件,根据不同系统输入以下内容:

    Win10
    {
        "cmd": ["E:/Softwares/MATLAB/R2014a/bin/matlab.exe", "-nodesktop", "-nosplash", "-r", "\"run('$file')\""],
        "selector": "source.m",
        "working_dir": "${project_path:${folder}}"
    }
    
    Ubuntu 16.04
    {
        "cmd": ["gnome-terminal -x bash -c \"matlab -nosplash -nodesktop -r ${file_base_name}; exec bash\""],
        "selector":"source.m",
        "shell":"true",
        "working_dir": "$file_path"
    }
    

    要注意cmd中对应的安装路径,这里给的路径是我的电脑中的配置。其中,matlab -nosplash -nodesktop -r ${file_base_name}表示启动matlab,并运行某个.m文件。-nosplash表示不加载启动界面;-nodesktop表示不加载GUI界面;-r表示运行Matlab命令行(MATLAB_command);file_base_name表示文件名,但不包含文件扩展名,如.m等。

    【注】 这一步中有关Ubuntu的配置和网上一些教程有所区别,网上教程大多是没有gnome-terminal命令的。我这里希望以命令行方式启动Matlab。我在实践中发现,Sublime的Build Results没有交互功能,只能显示运行结果。在Win10中Build时能自动打开Matlab命令行程序进行交互,但在Ubuntu中却没有打开命令行,所以在前面添加了启动终端(terminal)的相关命令,用于进行交互。

    2. 保存新建的Build System

    命名并保存这个JSON文件到默认目录(这个JSON文件的名字将成为新的Build System的名字,出现在Build菜单中)

    3. 通过Sublime启动MATLAB_command进行编译

    设置完成。此时随便编辑一个.m文件,在Build System下选择刚新建的配置,点击Tools -> Build或者使用快捷键Ctrl+B,这时Sublime就会打开MATLAB_command并编译当前文件。
    值得注意的是,每次Build都会产生一个新的命令行界面,相当于每次都重新启动了一次MATLAB_command,很耗费时间。所以建议在MATLAB_command启动后,每次修改了程序,先在Sublime中保存,然后在已有的控制台窗口输入脚本名进行编译。

    参考资料

    1. 利用Sublime Text 2 来运行matlab
    2. Show C build results in Linux terminal with Sublime Text 3

    相关文章

      网友评论

      • 3d47c2203852:谢谢作者的介绍,已成功使用,还有一个问题请教您:如何在Sublime运行matlab时能够调用matlab工具箱,因为我发现用Sublime运行遗传算法时不成功,但是在matlab软件里运行时却能成功, 分析其原因可能就是Sublime没有成功调用谢菲尔德遗传算法工具箱,请赐教!
        听这一刻的晚风:@南十字星_6ad9 好的,不客气。
        3d47c2203852:谢谢作者回复,确实是工具箱没有成功加载的问题,已修复,再次感谢回复!
        听这一刻的晚风:我对这个工具箱不了解,用 Sublime 运行的报错是什么呢?如果是找不到文件之类的,有可能是工作路径有问题。建议在终端开启后,直接输入脚本名称进行运行。“Sublime没有成功调用谢菲尔德遗传算法工具箱”,我觉得应该不是这样,因为 Sublime 只是启动了 MATLAB 的命令行界面,所有的脚本程序运行还都是 MATLAB 来执行的。
      • 无语森:不错!!!
        听这一刻的晚风: @无语森 谢谢!我会继续努力!

      本文标题:配置Sublime作为MATLAB的编辑器

      本文链接:https://www.haomeiwen.com/subject/ahwjdttx.html