Main Content

本页的翻译已过时。点击此处可查看最新英文版本。

构造对象数组

在构造函数中构建数组

类构造函数可以通过构建数组并将其作为输出参数返回来创建数组。

例如,ObjectArray 类创建与输入数组大小相同的对象数组。然后,它将每个对象的 Value 属性初始化为对应的输入数组值。

classdef ObjectArray
   properties
      Value
   end
   methods
      function obj = ObjectArray(F)
         if nargin ~= 0
            m = size(F,1);
            n = size(F,2);
            obj(m,n) = obj;
            for i = 1:m
               for j = 1:n
                  obj(i,j).Value = F(i,j);
               end
            end
         end
      end
   end
end

要预分配对象数组,请首先指定数组的最后一个元素。MATLAB®ObjectArray 对象填充第一个到倒数第二个数组元素。

预分配数组后,为每个对象的 Value 属性指定输入数组 F 中的对应值。要使用类,请执行以下操作:

  • 创建 5×5 幻方数组数字

  • 创建 5×5 对象数组

F = magic(5); 
A = ObjectArray(F);
whos
  Name      Size            Bytes  Class          Attributes

  A         5x5               304  ObjectArray              
  F         5x5               200  double   

引用对象数组中的属性值

给定一个对象数组 objArray,其中每个对象都有属性 PropName

  • 使用数组索引引用特定对象的属性值:

    objArray(ix).PropName
  • 使用圆点表示法引用对象数组中相同属性的所有值。MATLAB 返回以逗号分隔的属性值列表。

    objArray.PropName
  • 要将以逗号分隔的列表赋给变量,请将右侧表达式括在方括号中:

    values = [objArray.PropName]

例如,给定 ObjProp 类:

classdef ObjProp
   properties
      RegProp
   end
   methods
      function obj = ObjProp
         obj.RegProp = randi(100);
      end
   end
end

创建一个 ObjProp 对象数组:

for k = 1:5
   objArray(k) = ObjProp;
end

使用数组索引访问对象数组第二个元素的 RegProp 属性:

objArray(2).RegProp
ans =

    91

将所有 RegProp 属性的值赋给一个数值数组:

propValues = [objArray.RegProp]
propValues =

    82    91    13    92    64

使用标准索引操作来访问该数值数组的值。有关数值数组的详细信息,请参阅 矩阵和数组

相关主题