我正在尝试在另一个类Cell
Cell`中创建类in MATLAB. The class
的对象数组:
classdef Cell
properties
ID;
EntityID;
ZoneID;
NeighborID;
State;
nextChangeTime;
end
methods
% Define the constructor
function obj = Cell()
obj.ID = zeros(1);
obj.EntityID = zeros(1);
obj.ZoneID = zeros(1);
obj.NeighborID = zeros(1);
obj.State = zeros(1);
obj.nextChangeTime = zeros(1);
end
end
现在我有另一个班级System
。我尝试制作一组Cell
个像这样的对象:
classdef System
properties
Cells;
end
methods
function obj = System(dimx,dimy)
obj.Cells(dimx,dimy) = Cell();
end
end
但我认为我使用的是错误的格式。不确定这是否可行。任何有关如何实现这一目标的建议都将受到赞赏。
答案 0 :(得分:2)
为了能够创建用户定义类的对象数组(例如Cell
类),为用户定义的类提供默认构造函数是很方便的。默认构造函数是不带参数的构造函数(即nargin==0
时)。创建数组时,数组对象的隐式初始化由此构造函数完成。如果缺少此构造函数,则尝试通过“扩展”标量对象来构建数组将生成错误。
创建对象数组(不定义默认构造函数)的另一种方法是使用horzcat
,vertcat
和cat
。
Aaaaand ...在访问对象的属性时,不要忘记提及您正在访问的对象:
obj.Cells = Cell.empty(0,0); % Force the type of empty Cells to Cell class
obj.Cells(dimx,dimy) = Cell();