Main Content

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

空数组

创建空数组

空数组没有元素,但属于某个类。所有非抽象类都有一个名为 empty 的静态方法,该方法创建同一类的空数组。empty 方法使您能够指定输出数组的维度。不过,至少一个维数必须为 0。例如,定义 SimpleValue 类:

classdef SimpleValue
   properties
      Value
   end
   methods
      function obj = SimpleValue(v)
         if nargin > 0
            obj.Value = v;
         end
      end
   end
end

创建 SimpleValue 类的 5×0 空数组。

ary = SimpleValue.empty(5,0)
ary = 

  5x0 SimpleValue array with properties:

    Value

以不带参数形式调用 empty 会返回 0×0 空数组。

为空数组赋值

空对象定义数组的类。要将非空对象指定给空数组,MATLAB® 调用类构造函数为每个其他数组元素创建该类的默认实例。一旦将非空对象指定给数组,所有数组元素都必须为非空对象。

注意

默认情况下,类构造函数必须避免返回空对象。

例如,使用初始化对象数组节中定义的 SimpleValue,创建空数组:

ary = SimpleValue.empty(5,0);
class(ary)
ans =

SimpleValue

arySimpleValue 类的数组。但是,它是空数组:

ary(1)
Index exceeds matrix dimensions.

如果为属性值赋值,MATLAB 会调用 SimpleClass 构造函数将数组增长到所需大小:

ary(5).Value = 7;
ary(5).Value
ans = 

    7
ary(1).Value
ans = 

    []

MATLAB 用 SimpleValue 对象填充数组元素 1 到 5,这些对象是通过不带参数调用类构造函数创建的。然后,MATLAB 将属性值 7 赋给 ary(5) 的对象。

相关主题