2017-10-12 73 views
1

我開始了一個代碼,我必須生成很多給定類的實例。我想將它們保存到一個數組中,就像我在python中一樣。如何在Matlab中生成類的實例並將它們保存在數組中?

這就是我想做的事:

object_list = []; 
    for i=1:100 
     my_object = MyClass(i) 
     object_list(i) = my_object 
    end 

在Python這個作品,因爲我可以追加任何我想我的名單。 我應該如何在Matlab中做到這一點?

/錯誤得到是這樣的: 「從MyClass轉換爲double是不可能的。」 我想Matlab的行爲不同於通用的Python列表,實際上需要包含雙打。/

+1

你絕對可以在MATLAB中追加,但追加並不是一個好主意。更好的方法是預先分配到預期的長度。對於你的情況,你需要一個單元陣列。因此,初始化一個預期大小的單元數組,即'object_list = cell(1,100)',並用'object_list {i}'替換'object_list(i)',即花括號。做這種改變的原因正是錯誤信息所暗示的。 (也請避免使用'i'(和'j')作爲變量名稱,因爲它們默認代表虛數) –

回答

0

您可以初始化數組作爲對象的數組:上Initialize Object Arrays

object_list(100) = MyClass(100); 
for i=1:100 
    object_list(i) = MyClass(i); 
end 

更多信息。

相關問題