Main Content

shiftdim

移动数组维度

说明

示例

B = shiftdim(A,n) 将数组 A 的维度移动 n 个位置。当 n 为正整数时,shiftdim 向左移动维度;当 n 为负整数时,向右移动维度。例如,如果 A 是 2×3×4 数组,则 shiftdim(A,2) 返回 4×2×3 数组。

B = shiftdim(A) 返回数组,其元素与 A 相同,但删除了长度为 1 的头部维度。

示例

[B,m] = shiftdim(A) 还返回删除的长度为 1 的维度的数量。

示例

全部折叠

创建一个 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 的维度向右移动一次。

D = shiftdim(C,-1); 
size(D)
ans = 1×4

     1     4     3     2

输入参数

全部折叠

输入数组,指定为向量、矩阵或多维数组。

要移动的维度位置数,指定为整数。当 n 为正数时,shiftdim 向左移动这些维度并将头部维度绕回到末尾。当 n 为负值时,shiftdim 向右移动维度,用长度 1 填充增加的头部维度。

输出参数

全部折叠

输出数组,指定为向量、矩阵或多维数组。

删除的维度数量,指定为非负整数。shiftdim 仅删除长度为 1 的头部维度。

扩展功能

版本历史记录

在 R2006a 之前推出

另请参阅

| | |