空数组
创建空数组
空数组没有元素,但属于某个类。所有非抽象类都有一个名为 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
ary
是 SimpleValue
类的数组。但是,它是空数组:
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)
的对象。