如何在 Matlab 中生成类的实例并将它们保存在数组中?
Posted
技术标签:
【中文标题】如何在 Matlab 中生成类的实例并将它们保存在数组中?【英文标题】:How can I generate instances of a class in Matlab and save them in an array? 【发布时间】:2017-10-12 23:43:04 【问题描述】:我开始了一个代码,我必须在其中生成给定类的大量实例。我想像在 python 中那样将它们保存到一个数组中。
这就是我想做的:
object_list = [];
for i=1:100
my_object = MyClass(i)
object_list(i) = my_object
end
在 Python 中这是可行的,因为我可以将任何我想要的内容添加到我的列表中。 我应该如何在 Matlab 中做到这一点?
/得到的错误是这样的: “从 MyClass 转换为 double 是不可能的。” 我猜 Matlab 数组的行为与通用 python 列表不同,实际上需要包含双精度数。 /
【问题讨论】:
您当然也可以在 MATLAB 中追加,但追加并不是一个好主意。更好的方法是预先分配到预期长度。对于您的情况,您需要一个单元阵列。所以初始化一个预期大小的单元格数组,即object_list=cell(1,100)
,并将object_list(i)
替换为object_listi
,即花括号。进行该更改的原因正是错误消息所暗示的。 (同时避免使用i
(和j
)作为变量名,因为它们默认代表虚数)
【参考方案1】:
您可以将数组初始化为对象数组:
object_list(100) = MyClass(100);
for i=1:100
object_list(i) = MyClass(i);
end
更多关于Initialize Object Arrays的信息。
【讨论】:
以上是关于如何在 Matlab 中生成类的实例并将它们保存在数组中?的主要内容,如果未能解决你的问题,请参考以下文章