一、下载libsvm
下载地址:libsvm下载
二、在matlab中设置路径
我下载的是3.24版本,首先将libsvm-3.24放在matlab的toolbox下。
然后将libsvm-3.24添加到搜索路径中,添加过程如下。
最后保存即可。
三、编译
通过编译得到下图结果。
首先在matlab命令行窗口输入mex -setup -v查看当前有何编译器。在这里遇到的问题是:本人的检查结果都是无,但是明明下载了VS2019,后来百度后,一些大佬的解释是,需要先下载matlab然后再下载VS。但是不想重装vs了,所以决定下载MinGW-w64,下载过程如下第五步(若检查结果有编译器可以跳过下载MinGW-w64的过程)。
在命令行窗口输入make,即可得到上图结果。在这里我遇到的问题:
网上大佬的建议是将make中的CFLAGS改为COMPFLAGS;修改结果如下:
四、测试是否安装成功
大佬的测试方法:在matlab命令行窗口输入三句命令:
[heart_scale_label,heart_scale_inst]=libsvmread(‘heart_scale’);
model = svmtrain(heart_scale_label,heart_scale_inst) ;
[predict_label,accuracy,dec_values] = svmpredict(heart_scale_label,heart_scale_inst,model);
结果如下:
五、安装编译器
下载地址:MinGW-W64 C/C++编译器
然后设置系统变量,变量名:MW_MINGW64_LOC;变量值:MinGW-W64所在的位置。我的结果如下:
在命令行窗口输入setenv(‘MW_MINGW64_LOC’,‘E:\soft\Programming\Matlab\TDM-GCC’)安装完成。
然后再次输入mex -setup -v应该就有编译器了。
本人的最后一个问题,make后的结果如下:
虽然出现了这种情况,但是竟然生成了下图内容,而且也运行成功了。这期间过程不太明白其原因。隐隐感觉应该是要将TDM-GCC下载到C的根目录下。但是由于目前不影响我使用,暂时不想倒腾了,后续在遇到问题了再说。(有大佬知道原因的,请在下方留言,不胜感激,谢谢!)