squeeze
squeeze(A) 删除矩阵A中维度为1的维度
squeeze(rand(2,1,3)) %矩阵维度2*3
shiftdim
shiftdim(A) A中开头维度为1的维度被删除
shiftdim(rand(1,1,2,1,3)) %矩阵维度为2*1*3
[B,n] = shiftdim(rand(1,1,2,1,3)) %B矩阵维度为2*1*3,n为删除的维度数
shiftdim(A,n) 循环移动矩阵A的维度
n为正时,循环向左移动n个维数
shiftdim(rand(2,3,1,4),2) %矩阵维度为1*4*2*3
n为负时,向右移动矩阵维数,前面填充n个单一维度
shiftdim(rand(2,3,1,4),-2) %矩阵维度为1*1*2*3*1*4
circshift
circshift(A,K,dim) 矩阵A第dim个维度循环移动K个(正数代表方向由后向前,负代表由前往后)
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
Y = circshift(A,1,2)
Y = 4×4
0 1 1 0
0 1 1 0
0 0 0 0
0 0 0 0
circshift(A,K) 矩阵A按照K进行循环移动(正数代表方向由后向前,负代表由前往后)。若K为向量,则A的第n个维度按照K中第n个元素循环移动
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
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(A,[-1,-1])
Y = 4×4
1 0 0 1
0 0 0 0
0 0 0 0
1 0 0 1
reshape
reshape(A,sz) 对矩阵A中元素按照指定维度sz进行重新排列,元素先后按照维度顺序进行排列
A = 1:10;
B = reshape(A,[5,2])
B = 5×2
1 6
2 7
3 8
4 9
5 10
C = reshape(A,[],5)
C = 2x5
1 3 5 7 9
2 4 6 8 10