矩阵大小和结构变换
一、flip翻转
fliplr(A) 矩阵每一行逆序排列(左右翻转)
flipud(A) 矩阵每一列逆序排列(上下翻转)
flip(A,dim) 在dim维度上反转A矩阵元素的顺序
>> A=diag([100 200 300])
A =
100 0 0
0 200 0
0 0 300
>> fliplr(A)
ans =
0 0 100
0 200 0
300 0 0
>> flipud(A)
ans =
0 0 300
0 200 0
100 0 0
>> flip(A,1)
ans =
0 0 300
0 200 0
100 0 0
>> flip(A,2)
ans =
0 0 100
0 200 0
300 0 0
二、rot90(A)旋转
rot90(A) 将矩阵A逆时针旋转90°
rot90(A,k) 将矩阵A逆时针旋转k*90°
三、reshape变形
reshape(A,m,n,…,p) 生成m * n * … * p矩阵,值以线性顺序从A中排列,需要A中元素有m * n * … * p个
repmat(A,[m n … p]) 创建与A矩阵有相同元素的m * n * … * p多维矩阵
>> A = magic(6);
>> A
A =
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
>> B = reshape(A,[],3) %[]表示计算所得,此处=6*6/3=12,变形为12*3矩阵,B中元素的顺序值与A相同。
B =
35 6 19
3 7 23
31 2 27
8 33 10
30 34 14
4 29 18
1 26 24
32 21 25
9 22 20
28 17 15
5 12 16
36 13 11
>> repmat(A,[2,1])
ans =
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
35 1 6 26 19 24
3 32 7 21 23 25
31 9 2 22 27 20
8 28 33 17 10 15
30 5 34 12 14 16
4 36 29 13 18 11
四、移动和排序
shiftdim(A,n) 矩阵的列移动n步,n>0时左移,n<0时右移
squeeze(A) 删除A矩阵中的单一维度
permute(A,order) 根据向量order改变矩阵A的维数顺序
ipermute(A,order) permute函数的逆变换
sort(A) 对矩阵A的元素升序排序,当A为二维矩阵时,对每一列分别排序
sort(A,dim) 当dim=1时,对矩阵列排序;当dim=2时,对矩阵行排序
sort(A,dim,mode) 当mode='ascend’时,升序排序;当mode='descend’时,降序排序