主要内容

本页采用了机器翻译。点击此处可查看英文原文。

clone

复制在线状态估计对象

说明

obj_clone = clone(obj) 会创建一个与在线状态估计对象 obj 具有相同属性值的副本。

如果要复制一个现有对象,然后修改该复制的对象的属性,请使用 clone 命令。请勿使用语法 obj2 = obj 创建额外的对象。对以这种方式创建的新对象 (obj2) 的属性所做的任何更改,也会改变原始对象 (obj) 的属性。

示例

示例

全部折叠

为一个具有两个状态和一个输出的范德波尔振荡器创建一个扩展卡尔曼滤波器对象。要创建该对象,请使用之前编写并保存的状态转移函数和测量函数 vdpStateFcn.mvdpMeasurementFcn.m。将这两个状态的初始值指定为 [2;0]。

obj = extendedKalmanFilter(@vdpStateFcn,@vdpMeasurementFcn,[2;0])
obj = 
  extendedKalmanFilter with properties:

        HasAdditiveProcessNoise: 1
             StateTransitionFcn: @vdpStateFcn
    HasAdditiveMeasurementNoise: 1
                 MeasurementFcn: @vdpMeasurementFcn
     StateTransitionJacobianFcn: []
         MeasurementJacobianFcn: []
                          State: [2×1 double]
                StateCovariance: [2×2 double]
                   ProcessNoise: [2×2 double]
               MeasurementNoise: 1
         HasMeasurementWrapping: 0

使用 clone 生成一个与原始对象具有相同属性的对象。

obj2 = clone(obj)
obj2 = 
  extendedKalmanFilter with properties:

        HasAdditiveProcessNoise: 1
             StateTransitionFcn: @vdpStateFcn
    HasAdditiveMeasurementNoise: 1
                 MeasurementFcn: @vdpMeasurementFcn
     StateTransitionJacobianFcn: []
         MeasurementJacobianFcn: []
                          State: [2×1 double]
                StateCovariance: [2×2 double]
                   ProcessNoise: [2×2 double]
               MeasurementNoise: 1
         HasMeasurementWrapping: 0

修改 obj2MeasurementNoise 属性。

obj2.MeasurementNoise = 2;

请确认原始对象 objMeasurementNoise 属性保持不变且等于 1。

obj.MeasurementNoise
ans = 
1

输入参数

全部折叠

用于非线性系统在线状态估计的对象,由以下任一命令创建:

输出参量

全部折叠

在线状态估计对象 obj 的克隆,返回时为 extendedKalmanFilterunscentedKalmanFilterparticleFilter 对象,其属性与 obj 相同。

版本历史记录

在 R2016b 中推出