[医]循环换档
在一圈中移动阵列。
库::`工程师`
争论
例子:
移动矢量列的元素
Details
让我们创建一个数字列向量。
A = [1:10...]
10-element Vector{Int64}:
1
2
3
4
5
6
7
8
9
10
我们使用 循环换档 将元素移动三个位置。
import EngeeDSP.Functions: circshift
Y = circshift(A,3)
10-element Vector{Int64}:
8
9
10
1
2
3
4
5
6
7
结果 Y 它具有与 A 但它们以不同的顺序排列。
在数组中移动字符
Details
创建一个字符数组并使用函数 循环换档 将字符移至 3 各就各位。 字符的顺序不同。 Y.
import EngeeDSP.Functions: circshift
A = "racecar"
Y = circshift(A,3)
"carrace"
移位矩阵元素
Details
创建一个数值数组,左上角有一组单位。
A = [1 1 0 0; 1 1 0 0; 0 0 0 0; 0 0 0 0]
4×4 Matrix{Int64}:
1 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0
我们使用 循环换档 要移动每列 A 向右一个位置。
import EngeeDSP.Functions: circshift
Y = circshift(A,1,2)
4×4 Matrix{Int64}:
0 1 1 0
0 1 1 0
0 0 0 0
0 0 0 0
移位矩阵的元素 A 每个维度中的一个位置。 该组单元现在位于矩阵的中心。
Y = circshift(A,[1, 1])
4×4 Matrix{Int64}:
0 0 0 0
0 1 1 0
0 1 1 0
0 0 0 0
要将群集返回到其原始位置,请使用函数 循环换档 为 Y 具有负移位值。 矩阵 X 等价于矩阵 A.
X = circshift(Y,[-1, -1])
4×4 Matrix{Int64}:
1 1 0 0
1 1 0 0
0 0 0 0
0 0 0 0