2015-09-07 39 views
0

我有一個for循環,每次生成一個決策樹,然後在程序中我需要將所有決策樹應用於測試數據(決策樹不是組合在一起)。我試圖將它們存儲在一個結構數組,但是當我爲他們申請到測試數據我有以下錯誤:如何在matlab中存儲和檢索多個決策樹

(Undefined function 'predict' for input arguments of type 'struct'.).

我知道,產生的樹是一個對象,但你可以如何存儲和檢索多個MATLAB中的對象?

+0

歡迎來到SO。請用你的代碼提供[mcve],解釋它爲什麼不適合你,以及預期的結果是什麼。 – Adriaan

回答

0

通常情況下,對象數組將會這樣做(唯一的是該類需要一個默認的構造函數來分配空間)。

所以,最安全的方法是使用單元陣列。代碼將沿線︰

%'"N" is the size of your problem' 
dtrees = cell(1,N); 
for k = 1:N 
     %'Create the decision tree "obj"' 
     %'...' 
     dtrees{k} = obj; 
end; 

%'...' 

%'Later iterate in the cell array' 
for k = 1:N 
     obj = dtrees{k}; 
     %'Now do stuff with "obj"' 
     %'...' 
end; 
+0

感謝CST-Link爲您的答案和例子 –

+0

@HannaK很高興我能提供幫助。 – 2015-09-07 14:48:56

0

您使用單元陣列。 http://uk.mathworks.com/help/matlab/matlab_prog/create-a-cell-array.html 他們可以存儲幾乎任何東西。

+0

謝謝水手,它與數組一起工作 –

+0

答案的基本部分是:您使用單元陣列。它回答了「如何在MATLAB中存儲和檢索多個對象?」這個問題。 llink只是對單元陣列文檔的引用,以防他/他在實現時需要它。 – Sailor