MATLAB 帮助中心
本页翻译不是最新的。点击此处可查看最新英文版本。
移动数组维度
B = shiftdim(A,n)
B = shiftdim(A)
[B,m] = shiftdim(A)
B = shiftdim(A,n) 将数组 A 的维度移动 n 个位置。当 n 为正整数时,shiftdim 向左移动维度;当 n 为负整数时,向右移动维度。例如,如果 A 是 2×3×4 数组,则 shiftdim(A,2) 返回 4×2×3 数组。
B
A
n
shiftdim
shiftdim(A,2)
示例
B = shiftdim(A) 返回数组,其元素与 A 相同,但删除了长度为 1 的头部维度。
[B,m] = shiftdim(A) 还返回删除的长度为 1 的维度的数量。
m
全部折叠
创建一个 4×2×3×5 数组。将维度向左移动 2 个位置,使前两个维度长度绕回到最后两个维度。
A = rand(4,2,3,5); B = shiftdim(A,2); size(B)
ans = 1×4 3 5 4 2
将维度向右移动 2 个位置,使 2 个头部维度的长度为 1。向右移动不会将维度长度绕回。
C = shiftdim(A,-2); size(C)
ans = 1×6 1 1 4 2 3 5
移动数组的维度。
计算 5 维数组 A,并删除长度为 1 的头部维度。shiftdim 函数将移动 2 个维度,并返回三维数组 B。
A = rand(1,1,3,2,4); [B,nshifts] = shiftdim(A); nshifts
nshifts = 2
size(B)
ans = 1×3 3 2 4
将 B 的维度向左移动两次。
C = shiftdim(B,2); size(C)
ans = 1×3 4 3 2
将 C 的维度向右移动一次。
C
D = shiftdim(C,-1); size(D)
ans = 1×4 1 4 3 2
输入数组,指定为向量、矩阵或多维数组。
要移动的维度位置数,指定为整数。当 n 为正数时,shiftdim 向左移动这些维度并将头部维度绕回到末尾。当 n 为负值时,shiftdim 向右移动维度,用长度 1 填充增加的头部维度。
输出数组,指定为向量、矩阵或多维数组。
删除的维数量,指定为非负整数。shiftdim 仅删除长度为 1 的头部维度。
全部展开
用法说明和限制:
输入数组 A 不能为元胞数组。
如果使用输入参量 n,它在代码生成时必须为常量。
如果未指定输入参量 n,代码生成器会识别 A 的第一个具有可变大小的维度或固定大小大于 1 的维度。如果此维度在代码生成时具有可变大小且在运行时为 1,则可能发生运行时错误。
如果 n 为正值且在代码生成时 A 的最后一个维度为可变大小,则在运行时此维度的大小不能为 1。
backgroundPool
ThreadPool
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
shiftdim 函数完全支持 GPU 数组。要在 GPU 上运行该函数,请将输入数据指定为 gpuArray (Parallel Computing Toolbox)。有关详细信息,请参阅在 GPU 上运行 MATLAB 函数 (Parallel Computing Toolbox)。
gpuArray
此函数完全支持分布式数组。有关详细信息,请参阅使用分布式数组运行 MATLAB 函数 (Parallel Computing Toolbox)。
在 R2006a 之前推出
circshift | reshape | squeeze | permute
circshift
reshape
squeeze
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 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
欧洲
亚太
联系您当地的办事处