Matlab 在另一个类中创建一个类的对象数组
我试图在MATLAB中的另一个类系统Matlab 在另一个类中创建一个类的对象数组,matlab,matlab-class,Matlab,Matlab Class,我试图在MATLAB中的另一个类系统中创建一个类单元的对象数组。类Cell`是: classdef Cell properties ID; EntityID; ZoneID; NeighborID; State; nextChangeTime; end methods % Define the constructor function obj = Cell() obj.ID = zeros(1);
中创建一个类单元的对象数组。类
Cell`是:
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
现在我有了另一个类系统
。我尝试创建一个Cell
对象数组,如下所示:
classdef System
properties
Cells;
end
methods
function obj = System(dimx,dimy)
obj.Cells(dimx,dimy) = Cell();
end
end
但我认为我使用了错误的格式。不确定这是否可行。任何关于如何实现这一点的建议都将不胜感激。为了能够创建用户定义类的对象数组(例如,单元格
类),用户定义类的默认构造函数非常方便。默认构造函数是不带参数的构造函数(即当nargin==0
时)。创建数组时,数组对象的隐式初始化由该构造函数完成。如果缺少此构造函数,尝试通过“扩展”标量对象来构建数组将生成错误
创建对象数组的另一种方法(不定义默认构造函数)是使用horzcat
、vertcat
和cat
啊,还有。。。访问对象的属性时,不要忘记提及您正在访问的对象:
obj.Cells = Cell.empty(0,0); % Force the type of empty Cells to Cell class
obj.Cells(dimx,dimy) = Cell();
所以我有一个默认的构造函数来定义单元格。但是当我试图执行语句时,obj.Cells(dimx,dimy)=Cell()代码>它说从单元格转换为双精度是不可能的。我调整了代码,请再次查看我的帖子。显然,空属性的默认类型是double。我们需要把它换成手机。