1

我正在尝试Cell在另一个类 System in MATLAB. The classCell 中创建一个类的对象数组`是:

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

但我认为我使用了错误的格式。不确定这是否可能。任何有关如何实现此目的的建议将不胜感激。

4

1 回答 1

2

为了能够创建用户定义类(例如Cell类)的对象数组,为用户定义类提供默认构造函数很方便。默认构造函数是不带参数的构造函数(即 when nargin==0)。创建数组时,数组对象的隐式初始化是由这个构造函数完成的。如果缺少此构造函数,尝试通过“扩展”标量对象来构建数组将产生错误。

创建对象数组(不定义默认构造函数)的另一种方法是使用horzcat,vertcatcat.

Aaaaand... 访问对象的属性时,不要忘记提及您正在访问的对象:

obj.Cells = Cell.empty(0,0);  % Force the type of empty Cells to Cell class
obj.Cells(dimx,dimy) = Cell();
于 2013-04-20T20:19:54.890 回答