2015-07-04 48 views
1

我想用matlab中的線性libsvm函數進行分類。我得到了Wrong number of arguments錯誤,當我運行此代碼:libsvm train中輸入錯誤的錯誤編號

model1 = svmtrain(xTrain, yTrain, '-t 0'); 

xTrain是雙矩陣2612 * 20尺寸,我yTrain2612 * 1矢量與價值觀-1或,你能幫我解釋一下這段代碼有什麼問題嗎? 預先感謝您

+1

有您是否將libsvm庫添加到路徑中?看起來你使用的是Matlab中的'svmtrain'而不是libsvm,因爲它們的名稱是相同的。同時,xTrain和yTrain的順序是錯誤的,但這不是你得到錯誤的原因。 – yangjie

+0

非常感謝你,我添加了路徑,它的工作原理 – mari

回答

0

問題是與命令的最後部分'-t 0'。根據MATLAB,您應該有一個名稱值作爲此函數的第三個參數。

名稱 - 值對參數

指定可選的用逗號分隔的雙名,值參數。名稱 是參數名稱,值是相應的值。名稱必須在單引號('')內出現 。您可以按任意順序指定多個名稱和 值對參數,如Name1,Value1,...,NameN,ValueN。

例如:

svmStruct = svmtrain(xdata,group,'ShowPlot',true); 

您可以檢查here正確名值參數。比標準期權等

如果您使用的選項(即是算法依賴),那麼你應該按如下方式使用命令optimset

my_options = optimset('param1',value1,'param2',value2,...) 

然後,你可以這樣做:

svmStruct = svmtrain(xdata,group,'options',my_options); 
+0

非常感謝你的回答,但我想使用libsvm工具箱,因爲我在示例中找到了我應該爲libsvm選項使用字符串 – mari

+0

你的意思是什麼選項。請將編輯添加到問題中。 – NKN