初始化对象数组
调用构造函数
在创建对象数组的过程中,MATLAB® 可以不带参数地调用类构造函数,即使该构造函数不构建对象数组也是如此。例如,
假设您定义以下类:
classdef SimpleValue
properties
Value
end
methods
function obj = SimpleValue(v)
obj.Value = v;
end
endend
执行以下语句创建数组:
a(1,7) = SimpleValue(7)
Error using SimpleValue (line 7)
Not enough input arguments.
出现此错误是因为 MATLAB 调用构造函数时没有参数来初始化数组中的元素 1 到 6。
您的类必须支持无输入参数的构造函数语法。一个简单的解决办法是测试 nargin,让 nargin == 0 时不执行代码但不
引发错误:
classdef SimpleValue
properties
Value
end
methods
function obj = SimpleValue(v)
if nargin > 0
obj.Value = v;
end
end
endend
使用修改后的类定义,前面的数组赋值语句执行时不会出错: