其实按照下面的这个帖子就基本可以在matlab中顺利使用 libsvm
http://blog.csdn.net/abcjennifer/article/details/7370177 。 但我但运行 model = svmtrain(heart_scale_inst,heart_scale_label); 这条指令时报错了:
“错误使用 svmtrain函数 "mxGetIr" 已过时。
(必须使用 "-largeArrayDims" 选项重新生成使用稀疏矩阵的 64 位 mex 文件。有关更多详细信息,请参阅 R2006b 发行说明。)”
我的机器是64位的Win8.
随着对libsvm里文件作用的熟悉 发现所下载的libsvm-mat-2.89-3[FarutoUltimate3.0]文件夹了里文件其实是编译过的,可以直接使用。
【问题解决方法】
1.下载libsvm-mat-2.89-3[FarutoUltimate3.0]
2.配置好路径,参考 http://www.matlabsky.com/thread-120-1-1.html
3.选好编译器,参考 http://www.matlabsky.com/thread-11925-1-1.html
3.在matlab中选好‘当前目录’如下图所示
4. 直接运行命令
>> load('heart_scale.mat')
>> model = svmtrain(heart_scale_label,heart_scale_inst);
>> [predict_label,accuracy] = svmpredict(heart_scale_label,heart_scale_inst,model);
5.得到结果如下图红框所示
【问题原因】估计我所遇到的错误是因为在matlab中重新用make指令编译了一下,用新的编译结果运行时就会报错....至于为什么,等待下一步的研究。