gpt4 book ai didi

matlab - 作为属性的对象数组

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:55 25 4
gpt4 key购买 nike

我知道如何初始化对象数组:

arrayOfA(3,2) = ClassA();

for i = 1:3
for j = 1:2
arrayofA(i,j) = ClassA(...);
end
end

但是当我为一个属性尝试这个时:

classdef ClassB

properties
arrayOfA;
...
end

methods
%% Constructor
function b = ClassB(...)
b.arrayOfA(3,2) = ClassA(); % Error!
...
end
end

我得到异常 无法从 ClassA 转换为 double。

我有read当没有提供属性的默认值时,它被初始化为一个空的 double 组。这解释了异常,但是如何设置 arrayOfA 的默认值以便我可以用对象填充它?

我试过:

properties
arrayOfA(3,2) = ClassA;

但这给出了异常 Unbalanced or unexpected parenthesis or bracket.


编辑:我使用的是 MATLAB R2015b,结果影响了解决方案 - 见下文。

最佳答案

arrayOfA 的属性定义中,您应该可以将其设置为:

properties
arrayOfA = ClassA.empty
end

empty 是所有非抽象类的内置方法,正是出于这个目的。它将数组初始化为空的 ClassA 数组,而不是空的 double 组。

关于matlab - 作为属性的对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47271477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com