主要内容

diff

差分和近似导数

描述

例子

Y= diff (X的相邻元素之间的差值X沿着大小不等于1的第一个数组维度:

  • 如果X向量的长度是多少,然后Y = diff (X)返回一个长度的向量m - 1.的元素Y的相邻元素之间的差是多少X

    Y = [x (2) -x (1) x (3) -x(2)]…X (m) - X (m - 1))

  • 如果X是一个非空的非向量p × m矩阵吗Y = diff (X)返回一个大小为(p-1) × m的矩阵,其元素为X

    Y = [X (2:) - X (1:);X (3:) - X (2:);...X (p:) - X (p - 1:)]
  • 如果X是一个0 × 0的空矩阵吗Y = diff (X)返回一个0 × 0的空矩阵。

例子

Y= diff (Xn计算第n个差值diff (X)运营商递归n次了。在实践中,这意味着diff (X, 2)是一样的diff (diff (X))

例子

Y= diff (Xn昏暗的第n个差值是否按照指定的尺寸计算昏暗的.的昏暗的输入是一个正整数标量。

例子

全部折叠

创建一个向量,然后计算元素之间的差异。

X = [1 1 2 3 5 8 13 21];Y = diff (X)
Y =1×71 1 2 3 5 5

请注意,YX

创建一个3 × 3矩阵,然后计算行之间的第一个差。

X = [1 1 1;5 5 5;25 25 25];Y = diff (X)
Y =2×34 4 4 20 20 20

Y是一个2 × 3矩阵。

创建一个向量并计算元素之间的二阶差。

X = [0 5 15 30 50 75 105];Y = diff (X, 2)
Y =1×55 5 5 5

创建一个3 × 3矩阵,然后计算列之间的一阶差。

X = [1 3 5;7 11 13;17 19 23];Y = diff (X, 1, 2)
Y =3×22 2 4 2 2 4

Y是一个3 × 2矩阵。

使用diff函数近似偏导数的语法Y = diff (f) / h,在那里f是函数值在某个定义域上的向量,X,h是合适的步长。

例如,的一阶导数sin (x)关于xcos (x)的二阶导数xsin (x).您可以使用diff来近似这些导数。

h = 0.001;%步长X = -π:h:π;%的域f = sin (X);%的范围内Y = diff (f) / h;%一阶导数Z = diff (Y) / h;%二阶导数情节(X(: 1:长度(Y)), Y,“r”f, X,,“b”X(: 1:长度(Z)), Z,“k”

图中包含一个轴对象。轴对象包含3个类型为line的对象。

在这幅图中,蓝线对应的是原始函数,.红线对应的是计算出的一阶导数,因为,黑线对应于计算出的二阶导数,sin

创建一个等距datetime值序列,并找出它们之间的时间差。

t1 = datetime (“现在”);T2 = t1 + min (5);t = t1:分钟(1.5):t2
t =1 x4 datetime专栏1至3 01-Sep-2021 10:29:56 01-Sep-2021 10:31:26 01-Sep-2021 10:32:56
dt = diff (t)
dt =1 x3持续时间00:01:30 00:01:30 00:01:30

diff返回一个持续时间数组中。

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。X可以是数字数组、逻辑数组、日期时间数组或持续时间数组。

复数的支持:金宝app是的

差阶,指定为正整数标量或[].的默认值n是1。

这是可以指定的n足够大以至于昏暗的减少为一个(大小(X,昏暗的)= 1)维度。当这种情况发生时,diff继续计算下一个大小不等于1的数组维度。这个过程将继续进行,直到返回一个0 × 0的空矩阵。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

要操作的维数,指定为正整数标量。如果没有指定值,则默认为大小不等于1的第一个数组维度。

考虑一个二维的p- m输入数组,一个

  • diff (1, 1)处理列中的连续元素一个并返回一个(p-1) × m的差分矩阵。

  • diff (1 2)的行中连续的元素一个并返回一个p-by-(m-1)差矩阵。

数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

输出参数

全部折叠

差值数组,作为标量、向量、矩阵或多维数组返回。如果X是一个非空数组,那么X行动的diff尺寸减少了多少n在输出。

扩展功能

另请参阅

|||

之前介绍过的R2006a