3

我有这个代码:

allObjects=[]
for i=1:100
   allObjects(end+1) = MyObject();   % push the object to the end of my vector
end

但这打印:

无法从 MyObject 转换为 double。

如果我将 allObjects 声明为元胞数组,则相同

 allObjects = {}

考虑到我不知道需要存储多少对象,我如何在 Matlab 中拥有对象向量?

4

2 回答 2

6

allObjects = MyObject.empty会给你一个空的 class 对象数组MyObjectempty是为此目的设计的所有非抽象类的公共静态方法。键入doc empty以获取更多信息。

于 2013-01-18T09:24:54.470 回答
2

解决方案是做

allObjects=[MyObject]

这将告诉 matlab allObjects 是 MyObject 的向量

唯一的问题是真实对象将从索引 2 开始(因为您使用 推送元素end+1

于 2013-01-17T18:36:14.150 回答