MATLAB环境下libsvm安装指南

MATLAB环境下libsvm安装指南

(win7-64,MATLAB2017a)

       作为一个菜鸟,入门自己摸索花了很多时间,把自己试坑的过程给记录下来,希望可以帮助像我一样的菜鸟。

1、下载安装libsvm工具箱

下载链接https://www.csie.ntu.edu.tw/~cjlin/libsvm/#download

安装的位置没有影响,一般会选择MATLAB安装目录下的toolbox文件夹

 

2、使用make.m文件生成.mexw文件。

(1)按README文件中的方法,在MATLAB命令行窗口内直接输入make

(2)如果报错,按照README里面的说法使用命令mex –setup,但是依然显示无法找到编译器,报错如下:

MATLAB环境下libsvm安装指南

这时候就需要安装一个免费的compiler。下载链接如下:

a)MATLAB R 2017b及以后版本可使用下面的链接下载

https://ww2.mathworks.cn/matlabcentral/fileexchange/52848-matlab-support-for-mingw-w64-c-c-compiler

b)MATLAB R2015b, R2016a, R2016b, R2017a需要使用旧的版本 MinGW GCC 4.9.2 from TDM,下载链接:

https://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1309.0/

选择4.9.2的版本

MATLAB环境下libsvm安装指南

注意:

MinGW 安装文件夹名称不能包含空格。不要将 MinGW 安装在路径名中包含空格的位置。例如,不要使用:C:\Program Files\mingw-64。应改用:C:\mingw-64

(3)在命令行内输入mex –setup却依然报错,没有找到编译器,这可能是因为MATLAB没有找到相应的路径。在命令行内输入:

setenv('MW_MINGW64_LOC','C:\TDM-GCC-64')

然后输入

mex –setup

终于没有报错找到了编译器。

MATLAB环境下libsvm安装指南

(4)在命令行内输入make,却依然报错

MATLAB环境下libsvm安装指南

解决的方法:

将make.m中的CFLAGS改为COMPFLAGS

MATLAB环境下libsvm安装指南

(在此感谢下面链接里的兄弟https://github.com/cjlin1/libsvm/issues/55

改完之后make文件应该就可以顺利执行了,运行之后会有几个.mexw文件生成。

为了防止与MATLAB自带函数重名冲突,我们可以在生成的.mexw前加前缀lib。

3、使用工具箱

       使用工具的时候我们会发现总是会显示函数不存在,我们总是需要变换(添加)路径,这就很麻烦,简单的做法是使用下面的命令:

addpath(genpath(sCurrPath)); %如果该工具箱没有子目录,则无需genpath

savepath; %保存路径

 

到这里,我们就可以顺利使用libsvm了。