linux下安装libsvm_在ubuntu下的Matlab中使用libsvm

事情的起因当然是因为一个错误,我平时一直在windows下用libsvm,当把程序放到安装了Ubuntu的服务器上就报错了,错误如下:

Error using svmtrain (line 233)

Y must be a vector or a character array.

这个错误出现在matlab自带svmtrain文件,没有调用libsvm下的相应文件,以错误提示为关键词搜索,网上的解释大多是建议添加libsvm文件夹到当前工作目录,添加后仍没有变化。

于是改变搜索关键词为“linux下使用libsvm”,网上的解释为需要从新编译,即命令行下进入libsvm所在目录运行make,但有时会出现错误,结果就遇到了,错误提示是:

g++ -Wall -Wconversion -O3 -fPIC -c svm.cpp

make: g++: Command not found

make: *** [svm.o] Error 127

解决办法是安装g++编译器,在命令行输入 sudo apt-get install g++,注意此时需要有root权限,事实上这一步之前我并不知道g++编译器是何物,所以按照网上的介绍,为了安装g++编译器我还需要安装build-essential package,方法是在命令行依次执行如下:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install build-essential

$ gcc -v

$ make -v

因为现在我的libsvm已经正常运行,所以安装build-essential这一步的必要性无从验证,如果直接sudo apt-get install g++不报错的化,这一步可以省掉。

接下来在matlab命令行中,进入libsvm目录下的matlab目录,执行make,然后当然要把libsvm目录set path到工作目录下就可以.m文件中调用的svmtrain命令了。

其实我在这一步之前还走了一段弯路,因为搜索的关键词是“linux下使用libsvm”,所以网上的讲解是在命令行下进入libsvm目录然后执行make,之后在这一目录下可以用命令行进行训练,而命令行的调用格式是"./svm-train heart_scale",注意“./”不能少,而svm-train在.m文件中无法调用,我一度想把.mat文件中的特征转换成文本文件,格式如下“类别标签 1:第一维特征 2:第二维特征 ...“。后来想到需要调用的svmtrain在libsvm目录下的matlab目录中,重要的是该文件夹下还有一个make.m文件,于是在matlab命令行下运行他就ok了。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值