我想为ess
内置类创建一个子ss
类。我希望能够将现有ss
对象转换为ess
对象,同时添加缺少的属性,例如w
,通过类似这样的东西
sys=ss(a,b,c,d);
esys=ess(sys,w);
但我不知道如何正确设置构造函数。实现这一目标的最佳方法是什么?我的代码目前看起来像这样
classdef ess < ss
properties
w
end
methods
function obj = ess(varargin)
if nargin>0 && isa(varargin{1},'StateSpaceModel')
super_args{1} = sys;
else
super_args = varargin;
end
obj = obj@ss(super_args{:});
end
end
end
但这不起作用,因为我收到以下错误:
>> ess(ss(a,b,c,d))
??? When constructing an instance of class 'ess', the constructor must preserve
the class of the returned object.
当然,我可以手动复制所有对象属性,但在我看来应该有更好的方法。