主要内容

extendedKalmanFilter

建立用于在线状态估计的扩展卡尔曼滤波对象

描述

例子

obj= extendedKalmanFilter (StateTransitionFcn测量InitialState为离散时间非线性系统的在线状态估计创建扩展卡尔曼滤波对象。StateTransitionFcn是一个计算系统时刻状态的函数吗k,给出时刻的状态向量k-1.测量是一个计算系统输出测量时间的函数吗k,考虑到当时的状态kInitialState指定状态估计的初始值。

创建对象后,使用正确的预测命令,使用一阶离散时间扩展卡尔曼滤波算法和实时数据更新状态估计和状态估计误差协方差值。

例子

obj= extendedKalmanFilter (StateTransitionFcn测量InitialState名称、值使用一个或多个来指定扩展卡尔曼滤波对象的附加属性名称、值对参数。

obj= extendedKalmanFilter (StateTransitionFcn测量使用指定的状态转换和测量函数创建扩展的卡尔曼滤波对象。在使用之前预测正确的命令,使用点表示法指定初始状态值。例如,对于具有初始状态值的两状态系统(1, 0),指定对象状态=(1, 0)

obj= extendedKalmanFilter (StateTransitionFcn测量名称、值使用一个或多个来指定扩展卡尔曼滤波对象的附加属性名称、值对参数。在使用之前预测正确的命令中指定初始状态值名称、值成对参数或点符号。

例子

obj= extendedKalmanFilter (名称、值创建具有使用一个或多个属性的扩展卡尔曼过滤器对象名称、值对参数。在使用之前预测正确的使用命令,指定状态转换函数、度量函数和初始状态值名称、值成对参数或点符号。

对象描述

extendedKalmanFilter利用一阶离散时间扩展卡尔曼滤波算法建立了一个离散时间非线性系统的在线状态估计对象。

考虑一个有状态的植物x、输入u输出y、过程噪声w,测量噪声v. 假设您可以将设备表示为一个非线性系统。

算法计算状态估计 x 用你指定的状态转移和测量函数的非线性系统。该软件允许您指定噪声在这些功能作为加性或非加性:

  • 加性噪声条件-状态转移和测量方程的形式如下:

    x k f x k 1 u 年代 k 1 + w k 1 y k h x k u k + v k

    在这里f是描述状态演化的非线性状态转移函数吗x从一个时间步骤到下一个时间步骤。非线性测量函数h联系x的测量y在时间步kwv分别为零均值、不相关过程和测量噪声。这些函数还可以有附加的输入参数u年代u在方程。例如,附加参数可以是时间步长k或输入u对于非线性系统。可以有多个这样的参数。

    注意,两个方程中的噪声项都是加性的。也就是说,x (k)与过程噪声线性相关w (k - 1),y (k)与测量噪声是否线性相关v (k)

  • 非加性噪声项-该软件还支持更复杂的状态转换和状态测量金宝app功能xk)和测量yk]分别是过程噪声和测量噪声的非线性函数。当噪声项为非加性项时,状态转移和测量方程具有以下形式:

    x k f x k 1 w k 1 u 年代 k 1 y k h x k v k u k

当进行在线状态估计时,首先创建非线性状态转移函数f和测量功能h. 然后构造extendedKalmanFilter对象,并指定噪声项是可加性的还是非可加性的。你也可以指定状态转移和测量函数的雅可比矩阵。如果你没有指定它们,软件会数值计算雅可比矩阵。

创建对象后,使用预测命令来预测下一个时间步骤的状态估计,并且正确的利用算法和实时数据对状态估计进行修正。有关算法的信息,请参见在线状态估计的扩展和无迹卡尔曼滤波算法

您可以使用以下命令extendedKalmanFilter物体:

命令 描述
正确的

修正状态和状态估计误差在时间步长的协方差k采用时间步长测量数据k

预测

预测下一时刻的状态和状态估计误差协方差。

剩余 返回实际测量值和预测测量值之间的差值。
克隆

使用相同的对象属性值创建另一个对象。

不使用语法创建其他对象methoda = obj.以这种方式创建的新对象的属性的任何更改(methoda)也会更改原始对象的属性(obj).

对于extendedKalmanFilter对象属性,看属性

例子

全部崩溃

要定义用于估计系统状态的扩展卡尔曼滤波对象,首先要编写并保存系统的状态转移函数和测量函数。

在本例中,使用先前编写和保存的状态转换和测量函数,vdpStateFcn.mvdpMeasurementFcn.m.这些函数描述了非线性参数为1的范德堡尔振荡器的离散逼近。振子有两个状态。

为这两种状态指定一个初始猜测。你指定猜测为an元素的行或列向量,其中是状态数。

initialStateGuess = (1, 0);

创建扩展卡尔曼滤波器对象。使用函数句柄为对象提供状态转换和测量函数。

obj = extendedKalmanFilter (@vdpStateFcn @vdpMeasurementFcn initialStateGuess);

对象有一个默认结构,其中过程和测量噪声是附加的。

要从构造对象估计状态和状态估计误差协方差,请使用正确的预测命令和实时数据。

为具有两个状态和一个输出的范德堡尔振荡器创建一个扩展卡尔曼滤波器对象。使用先前编写和保存的状态转换和测量功能,vdpStateFcn.mvdpMeasurementFcn.m.这些函数是为添加过程和测量噪声项编写的。指定这两个状态的初始状态值为[2;0]。

由于系统有两种状态,而过程噪声是可加性的,因此过程噪声是一个2元向量,而过程噪声协方差是一个2 × 2矩阵。假设过程噪声项之间不存在相互关系,且两项方差相同为0.01。您可以将流程噪声协方差指定为标量。该软件使用标量值创建一个对角线为0.01的2 × 2对角线矩阵。

指定对象构建过程中的噪声协方差。

obj = extendedKalmanFilter (@vdpStateFcn @vdpMeasurementFcn, (2, 0),...“加工噪音”,0.01);

或者,您可以使用点符号在对象构造之后指定噪声协方差。例如,指定测量噪声协方差为0.2。

obj。米easurementNoise = 0.2;

由于系统只有一个输出,测量噪声是一个1元向量MeasurementNoise属性表示测量噪声的方差。

为具有两个状态和一个输出的范德堡尔振荡器创建一个扩展卡尔曼滤波器对象。使用先前编写和保存的状态转换和测量功能,vdpStateFcn.mvdpMeasurementFcn.m.指定这两个状态的初始状态值为[2;0]。

obj = extendedKalmanFilter (@vdpStateFcn、@vdpMeasurementFcn [2; 0]);

扩展卡尔曼滤波算法利用状态转移的雅可比矩阵和测量函数进行状态估计。编写并保存雅可比函数,并将它们作为对象的函数句柄提供。在本例中,使用先前编写和保存的函数vdpStateJacobianFcn.mvdpMeasurementJacobianFcn.m

对象状态TransitionJacobianFcn = @vdpStateJacobianFcn; obj.MeasurementJacobianFcn = @vdpMeasurementJacobianFcn;

注意,如果你没有指定函数的雅可比矩阵,软件会数值计算雅可比矩阵。这种数值计算可能导致处理时间的增加和状态估计的数值不准确。

为具有两个状态和一个输出的范德堡尔振荡器创建一个扩展卡尔曼滤波器对象。假设状态转移函数中的过程噪声项是可加的。即状态噪声与过程噪声之间存在线性关系。还假设测量噪声项是非可加性的。即测量与测量噪声之间存在非线性关系。

obj = extendedKalmanFilter (“HasAdditiveMeasurementNoise”、假);

指定状态转换函数和测量函数。使用以前编写和保存的函数,vdpStateFcn.mvdpMeasurementNonAdditiveNoiseFcn.m

假设过程噪声是可加的状态转移函数。测量函数是假定测量噪声是非可加性的。

obj.stateTransfcn=@vdpStateFcn;obj.MeasurementFcn=@vdpMeasurementNonAdditiveNoiseFcn;

指定这两个状态的初始状态值为[2;0]。

对象状态=[2;0];

你现在可以使用正确的预测从构造的对象估计状态和状态估计错误协方差值的命令。

考虑一个有输入的非线性系统u谁的国家x和测量y根据以下状态转移和测量方程演化:

x k x k - 1 + u k - 1 + w k - 1

y k x k + 2 u k + v k 2

过程噪声w系统的测量噪声是可加性的v非相加。

为系统创建状态转移函数和测量函数。指定带有附加输入的函数u

f = @ (x, u) (sqrt (x + u));h = @ (x, v, u) (x + 2 * u + v ^ 2);

fh是分别存储状态转换和度量函数的匿名函数的函数句柄。在测量函数中,由于测量噪声是非可加性的,v也指定为输入。请注意,v在附加输入之前指定为输入u

创建一个扩展的卡尔曼滤波对象,使用指定的函数估计非线性系统的状态。指定状态的初始值为1,测量噪声为非加性。

obj = extendedKalmanFilter (f、h 1“HasAdditiveMeasurementNoise”、假);

指定测量噪声协方差。

obj。米easurementNoise = 0.01;

您现在可以使用预测正确的命令。传递值u预测正确的,然后分别将它们传递给状态转换函数和测量函数。

用测量来修正状态估计yk] =0.8和输入uk] =0.2在时间步k

正确的(obj, 0.8, 0.2)

预测下一个时间步骤的状态uk] =0.2

预测(obj, 0.2)

检索错误,或剩余在预测和测量之间。

[残差,残差方差]=残差(obj,0.8,0.2);

输入参数

全部崩溃

状态转移函数f,指定为函数句柄。函数计算Ns-系统在时间步长的元素状态向量k,给出时间步长的状态向量k-1.Ns为非线性系统的状态数。

编写并保存非线性系统的状态转移函数,并使用它构造对象。例如,如果vdpStateFcn.m状态转移函数是否指定StateTransitionFcn作为@vdpStateFcn.你也可以指定StateTransitionFcn作为匿名函数的函数句柄。

函数的输入取决于您在HasAdditiveProcessNoise对象的属性:

  • HasAdditiveProcessNoise是真的-过程噪音w为可加性,状态转移函数指定状态如何演化为上一个时间步的状态值的函数:

    x (k) = f (x (k - 1), Us1,…,Usn)

    在哪里x (k)估计的状态是在时间k,Us1,…,Usn状态转换函数是否需要其他输入参数,如系统输入或样本时间。在估计期间,您将这些额外的参数传递给预测命令,然后将其传递给状态转换函数。

  • HasAdditiveProcessNoise为false-过程噪声是非加性的,状态转移函数还指定状态如何作为过程噪声的函数演化:

    x (k) = f (x (k - 1), w (k - 1), Us1,…,Usn)

要查看具有附加过程噪声的状态转换函数的示例,请键入编辑vdpStateFcn在命令行。

测量功能h,指定为函数句柄。函数计算N-非线性系统在时间步长的单元输出测量向量k,给出时间步长的状态向量kN是系统的测量次数。您可以编写并保存测量函数,并使用它来构造对象。例如,如果vdpMeasurementFcn.m测量功能是否指定测量作为@vdpMeasurementFcn.你也可以指定测量作为匿名函数的函数句柄。

函数的输入取决于您是将测量噪声指定为附加的还是非附加的HasAdditiveMeasurementNoise对象的属性:

  • HasAdditiveMeasurementNoise是真的吗-测量噪音v是可加性的,度量函数指定度量如何作为状态值的函数演化:

    y (k) = h (x (k),听Um1,…,学院)

    在哪里y (k)x (k)估计的输出和估计的状态是否在同一时间k,听Um1,…,学院您的测量函数需要任何可选的输入参数。例如,如果您使用多个传感器跟踪一个对象,那么附加的输入可能是传感器位置。在估计期间,您将这些额外的参数传递给正确的命令,然后将它们传递给测量函数。

  • HasAdditiveMeasurementNoiseis false—测量噪声是非可加性的,并且测量函数还指定输出测量如何演变为测量噪声的函数:

    y (k) = h (x (k), v (k),听Um1,…,学院)

要查看带有附加过程噪声的测量函数的示例,请键入编辑vdpMeasurementFcn在命令行。要查看带有非加性过程噪声的测量函数的示例,请键入编辑vdpMeasurementNonAdditiveNoiseFcn

初始状态估计值,指定为Ns元向量,Ns是系统的状态数。根据您对系统的了解,指定初始状态值。

指定的值存储在状态对象的属性。如果您指定InitialState作为列向量状态也是列向量,那么预测正确的命令以列向量的形式返回状态估计。否则,返回一个行向量。

如果要使用单精度浮点变量的筛选器,请指定InitialState作为一个单精度向量变量。例如,对于具有状态转移和测量功能的双态系统vdpStateFcn.mvdpMeasurementFcn.m,创建具有初始状态估计的扩展卡尔曼滤波对象[1,2]如下:

obj=ExtendedKalman过滤器(@vdpStateFcn,@vdpMeasurementFcn,单个([1;2]))

数据类型:|

名称-值对参数

指定可选的逗号分隔的字符对名称、值参数。的名字是参数名和价值为对应值。的名字必须出现在引号内。可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

使用名称、值参数指定属性extendedKalmanFilter对象在对象创建期间。例如,要创建一个扩展卡尔曼滤波对象,并指定过程噪声协方差为0.01:

obj=扩展Kalman过滤器(状态转换FCN、度量值Cn、初始状态、,“加工噪音”,0.01);

属性

全部崩溃

extendedKalmanFilter对象属性有三种类型:

  • 可以多次指定的可调属性,可以在使用名称、值参数,或者状态估计之后的任何时间。创建对象后,使用点表示法修改可调属性。

    obj = extendedKalmanFilter (StateTransitionFcn MeasurementFcn InitialState);obj。ProcessNoise = 0.01;

    可调属性为状态StateCovarianceProcessNoise,MeasurementNoise

  • 可指定一次的不可调优属性,可以在对象构造期间或之后使用点概念指定。在使用状态估计之前指定这些属性正确的预测.的StateTransitionFcn测量状态转换JacobianFCN,MeasurementJacobianFcn属性属于这个类别。

  • 在对象构造期间必须指定的不可调优属性。的HasAdditiveProcessNoiseHasAdditiveMeasurementNoise属性属于这个类别。

测量噪声特性,指定为以下值之一:

  • 真正的——测量噪声v是添加剂。测量功能h测量有以下形式:

    y (k) = h (x (k),听Um1,…,学院)

    在哪里y (k)x (k)估计的输出和估计的状态是否在同一时间k,听Um1,…,学院您的测量函数需要任何可选的输入参数。

  • 错误的-测量噪声是非附加的。度量函数指定输出度量如何演化为状态函数测量噪声:

    y (k) = h (x (k), v (k),听Um1,…,学院)

HasAdditiveMeasurementNoise是一个非功能属性,您只能在对象构造期间指定它。不能使用点表示法更改它。

过程噪声特性,指定为下列值之一:

  • 真正的——过程噪声w是添加剂。状态转移函数f中指定的StateTransitionFcn有以下形式:

    x (k) = f (x (k - 1), Us1,…,Usn)

    在哪里x (k)估计的状态是在时间k,Us1,…,Usn是状态转换函数所需的任何其他输入参数。

  • 错误的-过程噪声是非附加的。状态转移函数指定状态如何作为状态的函数演化上一时间步的过程噪声:

    x (k) = f (x (k - 1), w (k - 1), Us1,…,Usn)

HasAdditiveProcessNoise是一个非功能属性,您只能在对象构造期间指定它。不能使用点表示法更改它。

测量功能h,指定为函数句柄。函数计算N-非线性系统在时间步长的单元输出测量向量k,给出时间步长的状态向量kN是系统的测量次数。您可以编写并保存测量函数,并使用它来构造对象。例如,如果vdpMeasurementFcn.m测量功能是否指定测量作为@vdpMeasurementFcn.你也可以指定测量作为匿名函数的函数句柄。

函数的输入取决于您是将测量噪声指定为附加的还是非附加的HasAdditiveMeasurementNoise对象的属性:

  • HasAdditiveMeasurementNoise是真的吗-测量噪音v是可加性的,度量函数指定度量如何作为状态值的函数演化:

    y (k) = h (x (k),听Um1,…,学院)

    在哪里y (k)x (k)估计的输出和估计的状态是否在同一时间k,听Um1,…,学院您的测量函数需要任何可选的输入参数。例如,如果您使用多个传感器跟踪一个对象,那么附加的输入可能是传感器位置。在估计期间,您将这些额外的参数传递给正确的命令,然后将它们传递给测量功能。

  • HasAdditiveMeasurementNoiseis false—测量噪声是非可加性的,并且测量函数还指定输出测量如何演变为测量噪声的函数:

    y (k) = h (x (k), v (k),听Um1,…,学院)

要查看带有附加过程噪声的测量函数的示例,请键入编辑vdpMeasurementFcn在命令行。要查看带有非加性过程噪声的测量函数的示例,请键入编辑vdpMeasurementNonAdditiveNoiseFcn

测量是一个不可调优的属性。可以在使用之前指定一次正确的在对象构造期间或在对象构造之后使用点表示法执行命令。您不能在使用后更改它正确的命令。

测量函数的雅可比矩阵h,指定为下列其中之一:

  • []-雅可比矩阵在每次调用时都是数值计算的正确的命令。这可能会增加处理时间和状态估计的数值误差。

  • 函数句柄——编写并保存雅可比函数,并指定函数的句柄。例如,如果vdpMeasurementJacobianFcn.m雅可比函数是指定的吗MeasurementJacobianFcn作为@vdpMeasurementJacobianFcn

    该函数计算测量函数相对于状态和测量噪声的偏导数。雅可比函数的输入数量必须等于测量函数的输入数量,并且必须在两个函数中以相同的顺序指定。雅可比函数的输出数量取决于HasAdditiveMeasurementNoise属性:

    • HasAdditiveMeasurementNoise为真-该函数计算测量函数相对于状态的偏导数( h / x )。输出为N——- - - - - -Ns雅可比矩阵,N系统的测量次数是多少Ns是状态数。

    • HasAdditiveMeasurementNoise为假-该函数还返回第二个输出,该输出是测量函数对测量噪声项的偏导数( h / v ).第二个输出作为N——- - - - - -V雅可比矩阵,V为测量噪声项的个数。

要查看加性测量噪声的雅可比函数的示例,请键入编辑vdpMeasurementJacobianFcn在命令行。

MeasurementJacobianFcn是一个不可调优的属性。可以在使用之前指定一次正确的在对象构造期间或在对象构造之后使用点表示法执行命令。您不能在使用后更改它正确的命令。

测量噪声协方差,指定为标量或矩阵,取决于的值HasAdditiveMeasurementNoise属性:

  • HasAdditiveMeasurementNoise为true-将协方差指定为标量或N——- - - - - -N矩阵,N是系统的测量次数。如果测量噪声项之间没有互相关且所有项具有相同的方差,则指定一个标量。该软件使用标量值创建N——- - - - - -N对角矩阵。

  • HasAdditiveMeasurementNoise为false-将协方差指定为V——- - - - - -V矩阵,V为测量噪声项的个数。MeasurementNoise必须在使用前指定正确的. 指定后MeasurementNoise作为一个矩阵,第一次,然后改变MeasurementNoise还可以将其指定为标量。如果测量噪声项之间没有互相关且所有项的方差相同,则指定为标量。软件将标量扩展到V——- - - - - -V对角线上有标量的对角矩阵。

MeasurementNoise是一个可调属性。你可以用点符号来改变它。

过程噪声协方差,指定为标量或矩阵,具体取决于HasAdditiveProcessNoise属性:

  • HasAdditiveProcessNoise为true-将协方差指定为标量或Ns——- - - - - -Ns矩阵,Ns是系统的状态数。如果过程噪声项之间没有相互关联,并且所有的项具有相同的方差,则指定一个标量。该软件使用标量值创建Ns——- - - - - -Ns对角矩阵。

  • HasAdditiveProcessNoise为false-将协方差指定为W——- - - - - -W矩阵,W为过程噪声项的个数。ProcessNoise必须在使用前指定预测. 指定后ProcessNoise作为一个矩阵,第一次,然后改变ProcessNoise还可以将其指定为标量。如果过程噪声项之间没有相互关联且所有项具有相同的方差,则指定为标量。该软件将标量扩展到aW——- - - - - -W对角矩阵。

ProcessNoise是一个可调属性。你可以用点符号来改变它。

非线性系统的状态,指定为大小向量Ns,在那里Ns是系统的状态数。

当你使用预测命令,状态在时间步用预测值更新k使用时间步长的状态值k1。当你使用正确的命令,状态在时间步用估计值更新k采用时间步长测量数据k

的初始值状态中指定的值是InitialState对象创建期间的输入参数。如果您指定InitialState作为列向量状态也是列向量,那么预测正确的命令以列向量的形式返回状态估计。否则,返回一个行向量。如果希望使用单精度浮点变量的筛选器,则必须指定状态作为一个单精度变量在使用InitialState输入参数。

状态是一个可调属性。你可以用点符号来改变它。

状态估计误差协方差,指定为标量或Ns——- - - - - -Ns矩阵,Ns是系统的状态数。如果指定标量,则软件使用标量值创建Ns——- - - - - -Ns对角矩阵。

属性中指定的初始状态值不可信时,请为协方差指定一个高值InitialState输入参数。

当你使用预测命令,StateCovariance在时间步用预测值更新k使用时间步长的状态值k1。当你使用正确的命令,StateCovariance在时间步用估计值更新k采用时间步长测量数据k

StateCovariance是一个可调属性。可以在使用正确的预测命令。

状态转移函数f,指定为函数句柄。函数计算Ns-系统在时间步长的元素状态向量k,给出时间步长的状态向量k-1.Ns为非线性系统的状态数。

你可以为非线性系统编写并保存状态转换函数,并用它来构造对象。例如,如果vdpStateFcn.m状态转移函数是否指定StateTransitionFcn作为@vdpStateFcn.你也可以指定StateTransitionFcn作为匿名函数的函数句柄。

函数的输入取决于您在HasAdditiveProcessNoise对象的属性:

  • HasAdditiveProcessNoise是真的-过程噪音w为可加性,状态转移函数指定状态如何演化为上一个时间步的状态值的函数:

    x (k) = f (x (k - 1), Us1,…,Usn)

    在哪里x (k)估计的状态是在时间k,Us1,…,Usn状态转换函数是否需要其他输入参数,如系统输入或样本时间。在估计期间,您将这些额外的参数传递给预测命令,然后将其传递给状态转换函数。

  • HasAdditiveProcessNoise为false-过程噪声是非加性的,状态转移函数还指定状态如何作为过程噪声的函数演化:

    x (k) = f (x (k - 1), w (k - 1), Us1,…,Usn)

要查看具有附加过程噪声的状态转换函数的示例,请键入编辑vdpStateFcn在命令行。

StateTransitionFcn是一个不可调优的属性。可以在使用之前指定一次预测在对象构造期间或在对象构造之后使用点表示法执行命令。您不能在使用后更改它预测命令。

状态转移函数的雅可比矩阵f,指定为下列其中之一:

  • []-雅可比矩阵在每次调用时都是数值计算的预测命令。这可能会增加处理时间和状态估计的数值误差。

  • 函数句柄——编写并保存雅可比函数,并指定函数的句柄。例如,如果vdpStateJacobianFcn.m雅可比函数是指定的吗状态转换JacobianFCN作为@vdpStateJacobianFcn

    该函数计算状态转移函数相对于状态和过程噪声的偏导数。雅可比函数的输入数量必须等于状态转移函数的输入数量,并且必须在两个函数中以相同的顺序指定。函数的输出数量取决于HasAdditiveProcessNoise属性:

    • HasAdditiveProcessNoise为真-该函数计算状态转移函数对状态的偏导数( f / x ).输出是Ns——- - - - - -Ns雅可比矩阵,Ns是状态数。

    • HasAdditiveProcessNoise为假-该函数还必须返回第二个输出,该输出是状态转移函数对过程噪声项的偏导数( f / w ).第二个输出作为Ns——- - - - - -W雅可比矩阵,W为过程噪声项的个数。

扩展卡尔曼滤波算法利用雅可比矩阵计算状态估计误差协方差。

要查看加性过程噪声的雅可比函数的示例,请键入编辑vdpStateJacobianFcn在命令行。

状态转换JacobianFCN是一个不可调优的属性。可以在使用之前指定一次预测在对象构造期间或在对象构造之后使用点表示法执行命令。您不能在使用后更改它预测命令。

输出参数

全部崩溃

用于在线状态估计的扩展卡尔曼滤波对象,作为extendedKalmanFilter对象。此对象是使用指定的属性.使用正确的预测使用扩展卡尔曼滤波算法估计状态和状态估计误差协方差的命令。

当你使用预测对象状态对象状态Covariance在时间步用预测值更新k使用时间步长的状态值k1。当你使用正确的对象状态对象状态Covariance是否用时间步长的估计值更新k采用时间步长测量数据k

兼容性的考虑

全部展开

行为在R2020b中改变

扩展功能

介绍了R2016b