Matlab在科学计算方面的优越性使其成为科研人员的必备软件之一,搭载了大量复杂工具箱,日益优雅的代码编辑器让MATLAB R2017b彻底替代了之前的先辈版本。然而MATLAB毕竟是一个商业化的数学软件,在大型算法的编写和运行上都存在诸多缺点。因此一些大神们更喜欢用C/C++编写一些工具程序,比如libsvm, Matcont中的LimitCycle库。不过大神之所以称为大神在于他们不光有着惊人的天赋还设身处地的为我这种小白的方便着想,因此为这些程序加入了可以在Matlab编译的接口函数,也就是所谓的C/MATLAB混编。说多了小重也不懂,只记得当年本科国创的时候用过一次C#/Matlab混编,不过和上面讲的是反过来的,当时是有个师兄在Matlab上写的算法我不想在C#中重写于是将其编译成了C#可以直接调用的dll文件。但是市面上将MATLAB和其他语言婚变的书籍层出不穷,有需要的小伙伴可以直接买一本敲几个demos应该就入门了。
言归正传,小重今天只想讲讲这混编的第一步,就是为Matlab配置C/C++编译的环境。说白了就是想做这么每一件事,把大神编写好的c/c++文件编译成MATLAB可以直接用的mex文件。其实这类教程很多,之所以写的原因在于这个过程是depends on the version of MATLAB and operation system的。本重今天只针对没有自带C编译器的Win64位系统,MATLAB 2017b,步骤如下:
Step1. 打开Matlab,在command面