【发布时间】:2017-02-06 15:08:11
【问题描述】:
我正在尝试初始化一个对象数组。
从MATLAB documentation 1 和2,我知道您将最后一个数组元素分配给了一个对象,而数组的其余部分应该用默认构造的对象填充。例如
object_array(2,2) = object; % create 2 x 2 of class 'object'
我在我的代码中的几个地方都这样做了,而且效果很好。
但我发现对于我的一门课它不起作用。
我有一个大小为 1x2x2 的 objA 对象数组,我想创建一个大小为 objB 的对象数组。现在 objB 有一个构造函数,所以我确保构造函数处理构造函数没有参数的情况,以便 objB 的对象数组可以默认填充。例如
function objb = objB(parameter)
if (nargin > 0)
% do stuff with parameter
end
end
现在是有趣的部分: 我尝试使用 objA 数组的大小来构造 objB 对象数组。
# breakpoint 1
objBArray(size(objAArray)) = objB;
# breakpoint 2
当我到达断点1时,
size(objAArray) = 1, 2, 2
但是当我到达断点2时,
size(objAArray) = 1, 2, 2
和
size(objBArray) = 1, 2
为什么 objBArray 和 objAArray 的大小不一样?
问题出在构造函数上吗?
【问题讨论】:
标签: arrays matlab multidimensional-array