错误 Y must be a vector or a character array 解决

一颗行走的大白菜 转载请注明出处

这是我在用SVM 方法做mnist 分类时遇到的一个bug;

解决方法一:
1.点击Matlab左上角的file(或主页),选择set path.
2.在弹出的选项框中,选择第二个选项And with Subfolders(包含子文件夹).
3.找到你的libsvm文件夹,点确定.
4.点击save

方法二:
1. 下载libsvm

下载地址:http://www.csie.ntu.edu.tw/~cjlin/libsvm/

当前版本时libsvm-3.20, 压缩包中包含了matlab,python 和java等版本的接口。本文主要利用了matlab的版本。

2. 编译matlab版本

解压上述的压缩包,并将matlab的当前目录切换到文件家中的matlab文件夹下。

首先配置编译器,在matlab命令窗口中输入

mex –setup

接着运行

make

这里一定要将matlab的工作目录切换到libsvm-3.20/matlab/ 下,这地方make运行了make.m并且生成相应版本的libsvm文件。

libsvmread.mexa64 svmtrain.mexa64 svmpredict.mexa64 libsvmwrite.mexa64

这里为了与matlab自带的svm实现相区别,可以选择将这些文件都更改为

libsvmread.mexa64 libsvmtrain.mexa64 libsvmpredict.mexa64 libsvmwrite.mexa64

3. 设置路径

如果上述运行成功,说明libsvm成功编译,这里为了方便使用需要设置一下搜索路径。很多人会在编译后直接设置路径,这里个人先确保了libsvm能够使用后又设置的libsvm的工具路径。

File->set path ->add with subfolders->加入libsvm-3.20/matlab文件夹的路径。

你可能感兴趣的:(错误 Y must be a vector or a character array 解决)