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);

我试图在MATLAB中的另一个类系统
中创建一个类
单元
的对象数组。类
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。我们需要把它换成手机。