deltas

语法

deltas(X,[n])

参数

X 是一个标量、向量、矩阵或表。

n 为可选参数,整型,用于指定计算 X 中两个非相邻元素之差时的元素间隔数,默认值为 1。

  • 在不指定 n 值时,deltas 计算相邻元素之差;

  • 当指定 n 为大于 1 的正整数时,以 X 中位置靠右的元素减去与其左边间隔 (n-1) 个元素的元素得到差值。例如,当 X = 3 4 6 9,n = 2 时,计算 X 中 6 和 3 之差以及 9 和 5 之差,得到的结果为:[,,3,5]。

  • 当 n 为负整数时,以 X 中位置靠左的元素减去与其右边间隔 (n-1) 个元素的元素得到差值。例如,当 X = 3 4 6 9,n = -2 时,计算 X 中 3 和 6 之差以及 4 和 9 之差,得到的结果为:[-3,-5,,]。

详情

  • X 是向量,返回一个包含 X 中相邻元素之差的向量。结果中第一个元素是 NULL。

  • X 是矩阵,在每列内进行上述计算,返回一个与 X 维度相同的矩阵。

  • X 是表,在每列内进行上述计算,返回一个与 X 行数与列数都相同的表。

例子

x=7 4 5 8 9;
deltas(x);
//output: [,-3,1,3,1]
//等价于 [, 4-7, 5-4, 8-5, 9-8]
x=NULL 1 2 NULL 3;
deltas(x);
//output: [,,1,,]

m=matrix(1 3 2 5 6, 0 8 NULL 7 6);
m;

返回:

#0 #1
1 0
3 8
2
5 7
6 6
deltas(m);

返回:

#0 #1
2 8
-1
3
1 -1
x = 1..30;
n = 8;
r = deltas(x,n);
print r;
//output: [,,,,,,,,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8]

当 X 是矩阵时,

m=matrix(1 3 2 5 6, 0 8 NULL 7 6);
n = 4;
result = deltas(m,n)
result

返回:

0 1
5 6

其中,第一列的 1 和 6 符合 n = 4 的元素间隔设定,差值为 5; 第二列的 0 和 6 符合 n = 4 的元素间隔设定,差值为 6,其余元素由于不满足 n = 4 的间隔,不参与计算,显示为空。

当 n 为负整数时,

x = 3 4 6 9
n = -2
r2= deltas(x,n)
r2

返回:

0 1 2 3
-3 -5