MATLAB 帮助中心
循环平移数组
Y = circshift(A,K)
Y = circshift(A,K,dim)
Y = circshift(A,K) 循环将 A 中的元素平移 K 个位置。如果 K 为整数,则 circshift 沿大小不等于 1 的第一个 A 维度进行平移。如果 K 为整数向量,则每个 K 元素指示 A 的对应维度中的平移量。
A
K
circshift
注意
在 R2016b 中,circshift(A,K) 中 K 为标量时的默认行为已更改。要保留 R2016a 及以前版本的行为,请使用 circshift(A,K,1)。此语法指定 1 作为要沿其运算的维度。
circshift(A,K)
circshift(A,K,1)
示例
Y = circshift(A,K,dim) 循环将 A 中的值沿维度 dim 平移 K 个位置。输入 K 和 dim 必须为标量。
dim
全部折叠
创建一个数值列向量。
A = (1:10)'
A = 10×1 1 2 3 4 5 6 7 8 9 10
使用 circshift 将元素平移三个位置。
Y = circshift(A,3)
Y = 10×1 8 9 10 1 2 3 4 5 6 7
结果 Y 具有与 A 相同的元素,但元素的顺序不同。
Y
创建字符数组并使用 circshift 将字符平移 3 个位置。Y 中的字符具有不同的顺序。
A = 'racecar'; Y = circshift(A,3)
Y = 'carrace'
创建一个左上角包含一块“1”的数值数组。
A = [1 1 0 0; 1 1 0 0; 0 0 0 0; 0 0 0 0]
A = 4×4 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0
使用 circshift 将 A 的每一列向右平移一个位置。
Y = circshift(A,1,2)
Y = 4×4 0 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0
将 A 的元素在每个维度中平移一个位置。由“1”构成的群组现在处于矩阵的中心。
Y = circshift(A,[1 1])
Y = 4×4 0 0 0 0 0 1 1 0 0 1 1 0 0 0 0 0
要将群组恢复到其原始位置,请使用负平移值对 Y 执行 circshift。矩阵 X 等效于 A。
X
X = circshift(Y,[-1 -1])
X = 4×4 1 1 0 0 1 1 0 0 0 0 0 0 0 0 0 0
输入数组,指定为向量、矩阵或多维数组。
数据类型: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | string | struct | table | cell 复数支持: 是
single
double
int8
int16
int32
int64
uint8
uint16
uint32
uint64
logical
char
string
struct
table
cell
平移量,指定为整数标量或整数向量。
如果您指定 K 为整数,但不指定 dim,则 circshift 将沿其大小不等于 1 的第一个维度平移。正 K 向维度末尾平移,负 K 向开头平移。
如果将 K 指定为整数向量,则 K 中的第 N 个元素指定 A 中第 N 个维度的平移量。如果 K 中的第 N 个元素为正值,则 A 的值将向第 N 个维度的末尾平移。如果第 N 个元素为负值,则值向开头平移。
如果平移量大于 A 中对应维度的长度,则平移操作会绕回到该维度的开头。例如,将 3 元素向量平移 +3 个位置将使其元素重新回到其原始位置。
沿其运算的维度,指定为正整数标量。如果未指定值,则默认值是大小不等于 1 的第一个维度。如果指定 dim,则 K 必须为整数标量。通常,指定 dim = 1 以交换行,指定 dim = 2 以交换列等。
dim = 1
dim = 2
全部展开
用法说明和限制:
代码生成不支持使用表和元胞作为第一个输入参量。
请参阅“C/C++ 代码生成”部分中的用法说明和限制。同样的用法说明和限制也适用于 GPU 代码生成。
backgroundPool
ThreadPool
circshift 函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
circshift 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
circshift 函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2006a 之前推出
fftshift | reshape | shiftdim | permute
fftshift
reshape
shiftdim
permute
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处