linux下安装libsvm_在ubuntu下的Matlab中使用libsvm
事情的起因當(dāng)然是因?yàn)橐粋€(gè)錯誤,我平時(shí)一直在windows下用libsvm,當(dāng)把程序放到安裝了Ubuntu的服務(wù)器上就報(bào)錯了,錯誤如下:
Error using svmtrain (line 233)
Y must be a vector or a character array.
這個(gè)錯誤出現(xiàn)在matlab自帶svmtrain文件,沒有調(diào)用libsvm下的相應(yīng)文件,以錯誤提示為關(guān)鍵詞搜索,網(wǎng)上的解釋大多是建議添加libsvm文件夾到當(dāng)前工作目錄,添加后仍沒有變化。
于是改變搜索關(guān)鍵詞為“l(fā)inux下使用libsvm”,網(wǎng)上的解釋為需要從新編譯,即命令行下進(jìn)入libsvm所在目錄運(yùn)行make,但有時(shí)會出現(xiàn)錯誤,結(jié)果就遇到了,錯誤提示是:
g++ -Wall -Wconversion -O3 -fPIC -c svm.cpp
make: g++: Command not found
make: *** [svm.o] Error 127
解決辦法是安裝g++編譯器,在命令行輸入 sudo apt-get install g++,注意此時(shí)需要有root權(quán)限,事實(shí)上這一步之前我并不知道g++編譯器是何物,所以按照網(wǎng)上的介紹,為了安裝g++編譯器我還需要安裝build-essential package,方法是在命令行依次執(zhí)行如下:
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install build-essential
$ gcc -v
$ make -v
因?yàn)楝F(xiàn)在我的libsvm已經(jīng)正常運(yùn)行,所以安裝build-essential這一步的必要性無從驗(yàn)證,如果直接sudo apt-get install g++不報(bào)錯的化,這一步可以省掉。
接下來在matlab命令行中,進(jìn)入libsvm目錄下的matlab目錄,執(zhí)行make,然后當(dāng)然要把libsvm目錄set path到工作目錄下就可以.m文件中調(diào)用的svmtrain命令了。
其實(shí)我在這一步之前還走了一段彎路,因?yàn)樗阉鞯年P(guān)鍵詞是“l(fā)inux下使用libsvm”,所以網(wǎng)上的講解是在命令行下進(jìn)入libsvm目錄然后執(zhí)行make,之后在這一目錄下可以用命令行進(jìn)行訓(xùn)練,而命令行的調(diào)用格式是"./svm-train heart_scale",注意“./”不能少,而svm-train在.m文件中無法調(diào)用,我一度想把.mat文件中的特征轉(zhuǎn)換成文本文件,格式如下“類別標(biāo)簽 1:第一維特征 2:第二維特征 ...“。后來想到需要調(diào)用的svmtrain在libsvm目錄下的matlab目錄中,重要的是該文件夾下還有一個(gè)make.m文件,于是在matlab命令行下運(yùn)行他就ok了。
總結(jié)
以上是生活随笔為你收集整理的linux下安装libsvm_在ubuntu下的Matlab中使用libsvm的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php background-image
- 下一篇: 磁盘管理来安装linux,Linux_在