我希望创建一个名为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.
当然,我可以手动复制所有对象属性,但我认为应该有更好的方法。
ss
实例并从中返回一个新的ess
实例。 - Amross
实例并添加额外的信息(例如w
的值)。是否可以在不手动复制原始对象的所有值的情况下实现? - sebhofer