[转自MATLAB2018a安装libsvm-适用于MATLABR2016a
(https://blog.csdn.net/rstaotao/article/details/96583340)]
#电脑
win10,64位,matlab2016a
#2.下载libsvm工具箱
下载地址:https://www.csie.ntu.edu.tw/~cjlin/libsvm/
https://blog.csdn.net/rstaotao/article/details/96583340
-
下载后的文件解压
将解压后的libsvm-3.23文件夹放在你安装matlab的路径下,toolbox文件夹中。我自己matlab安装在E盘,那么libsvm就要放在,E:\MATLAB\toolbox中,结果就是E:\MATLAB\toolbox\libsvm-3.23,这个样子。千万不要放错。 -
添加路径
将该文件路径添加到matlab中,打开matlab,主页中打开“设置路径”,进入后,选择“添加并包含子文件夹”。这时候将刚刚设置的这个路径E:\MATLAB\toolbox\libsvm-3.23,完全包括进来即可。添加完我们可以看到matlab搜索路径里面包括了刚刚添加的路径(红色框显示路径)。 -
调试
前期的libsvm设置完毕,开始调试,打开matlab,一定要注意,要将当前文件夹(current folders)设置到E:\MATLAB\toolbox\libsvm-3.23\matlab(记住这个地址,后面将一直用到!!!),一定要进入到matlab这个文件夹里面。就是下面这个样子。 -
命令行
在进入当前文件夹后,在命令行窗口中输入mex -setup,注意啊,mex后面是个空格,一定别漏掉了。结果我这里出现了问题,正常如果你电脑安装的是跟matlab版本对应的VS,或者matlab版本之下的VS版本,都能直接成功,这里我电脑安装的是VS2019,我都喜欢装新的软件,不过这不重要,解决问题就好了。 -
对于破解版的matlab,我们需要进行手动安装
1)首先对着版本号下载对应的minGW版本。2018a对应minGW5.3版本。点击蓝色字体的minGW5.3进入下载界面,进行手动下载,下载到任何指定文件夹都行。
查看支持的编译器 https://ww2.mathworks.cn/content … portedCompilers.pdf
2)将下载解压后的mingw.mlpkginstall文件(注意,这个文件不是exe可执行文件,需要在matlab中安装)复制到E:\MATLAB\toolbox\libsvm-3.23\matlab中,打开matlab,打开这个地址,双击mingw.mlpkginstall文件即可安装。但是……我的matlab2018a仍然不支持VS2019。体现在,点击安装mingw.mlpkginstall文件的时候,一直就没下载进度提示,后来终于提示安装失败。但是网友们的力量是无穷的,终于让我找到了另一种方法,如果安装不了minGW,那就另辟蹊径,安装TDM-GCC。
3)TDM-GCC的下载地址,建议安装在C盘根目录下,根据许多前辈的经验,目录中名称不能出现空格。这里我自己都忘了设置地址,结果打开C盘一看,直接就是C盘根目录。注意下载64位的(因为我电脑就是64位的),我下载的是上面那个红色箭头(就是懒),如果有懂电脑的,可以省空间,直接定点下载,在64位里面找到最合适的下载也行。
http://tdm-gcc.tdragon.net/download
下载的tdm就是上面这个玩意,直接双击运行即可。
4)配置环境变量。这个估计以后经常用,简单说一下。右键“我的电脑”,选择“属性”,选择“高级系统设置”,在“高级”板块中,选择最下面的“环境变量”,“新建”一个环境变量,变量输入“MW_MINGW64_LOC”,值输入“C:\TDM-GCC-64”,也就是你tdm的安装地址。
5)此时打开matlab,在命令行窗口中输入:>> setenv(‘MW_MINGW64_LOC’,‘C:\TDM-GCC-64’),就上面的环境变量和其地址。回车,注意这一步没动静,但是后台已经完成指令了,具体完成什么指令我不知道。估计就是在环境变量的地址下安装了tdm编译器。接着输入mex -setup,结果神器的一幕出现了。发现matlab能识别minGW64编译器了。然后直接鼠标点击mex -setup C++,也可以输入这个玩意,不过鼠标点击多快。再接着点击minGW64 Compiler(C++),齐活!
6)在E:\MATLAB\toolbox\libsvm-3.23\matlab路径中,发现了make.m文件,因此在命令行窗口中输入make,回车。发现了警告。虽然有警告,但不影响我们用实验数据进行测验。发现测试也能实现。
#上述都来源于https://blog.csdn.net/rstaotao/article/details/96583340,写这个是为了以免自己忘记~
如果这里出现了错误,make运行不成功,显示
Error: D:\ruanjian\MatlabR2016a\toolbox\libsvm-3.24\matlab\make.m failed
鼓捣了一晚上终于找到了:
其实这里这一步主要是讲MATLAB的文件中c文件编译为MATLAB,此时可以查看mex函数,或者直接mex libsvmread.c, mex libsvmwrite.c, mex -largeArrayDims svmtrain.c …/svm.cpp svm_model_matlab.c,
mex -largeArrayDims svmpredict.c …/svm.cpp svm_model_matlab.c或者参考下面两个链接:1.https://blog.csdn.net/u012349538/article/details/67661785?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.control&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-6.control
2. https://github.com/cjlin1/libsvm/issues/55