之前使用过libsvm,最近由于换了电脑,由原先的32位换成64位,所以重新安装了64位的matlab 2015b,打算使用最新的libsvm 3.21。
对于windows 64位的系统,libsvm-3.21/windows文件夹下自带已经编译好的svmtrain.mexw64、svmpredict.mexw64、libsvmread.mexw64、libsvmwrite.mexw64,所以不需要再进行编译,在添加完路径(设置路径—添加并包含子文件夹—libsvm-3.21)后就可以直接使用libsvm了。但是我在运行时出现了错误:Invalid MEX-file 'I:\PH\libsvm-3.21\windows\svmtrain.mexw64': 找不到指定的模块。试了各种方法都不行,包括自己重新编译。最后的解决方法是放弃libsvm 3.21,使用libsvm 3.20,奇迹般的可以用了。libsvm 3.20也有已经编译好的上面四个文件,所以不需要自己编译,只添加路径就可以。
PS:我之前在32位电脑上也尝试过用libsvm 3.21,也是没有成功,最后用的之前的版本。libsvm 3.21和libsvm 3.20差不多,在libsvm 3.21不能用的时候可以试试用libsvm 3.20.