Engee 文档

[医]循环换档

在一圈中移动阵列。

库::`工程师`

语法

函数调用

争论

输入参数

# 一个 — 输入数组

+ 向量资料 | 矩阵

Details

指定为向量或矩阵的输入数组。

数据类型

漂浮物32, 漂浮64, Int8, Int16, Int32, Int64, UInt8, UInt16, UInt32, UInt64, 布尔, 查尔, 字符串</无翻译> 支持复数::是

# *K*是 转变的幅度

+ 一个整数标量 | 整数的向量

Details

移位的值,指定为整数标量或整数的向量。

  • 如果指定 K 作为整数而未指定 [参数:暗淡] 然后 循环换档 将在第一个维度上执行移位,其大小不等于 1. 正数值 K 将其移到测量结束,将负的移到开始。

  • 如果指定 K 作为整数的向量,则 -th元素 K 设置移位量 -第三维度 [参数:A]. 如果 -第三个元素 K 如果是肯定的,那么值 [参数:A] 走向终点 -第维度。 如果 -第三个元素 [参数:A] 如果是负数,则值将移到开头。

如果移位的值大于相应测量的长度在 [参数:A],则该移位循环地转移到该测量的开始。 例如,通过 +3 positions将其元素返回到其原始位置。

# 昏暗 — 为其执行操作的测量

+ 正整数标量

Details

对其执行操作的维度,指定为正整数标量。 如果未指定值,则默认使用第一个维度,其大小不等于 1. 如果论点是 昏暗 指定,则 [参数:K] 必须是整数标量。 一般来说,要交换行,请指定 暗淡=1,用于交换列 — 暗淡=2 等。

输出参数

# Y — 输出阵列

+ 向量资料 | 矩阵

Details

作为向量或矩阵返回的输出数组。

例子:

移动矢量列的元素

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