matlab高维矩阵提取其中n维
-
squeeze提取一维
e.g. a=squeeze(b(2,1,:)); -
permute提取二维
e.g. a=rand(2,3,4);
b=permute(a(:,1,:),[1 3 2]);
%(:,1,:) 表示取3列中(2,3,4)的第一个,[1 3 2]表示按矩阵变为[2,4,3]; -
reshape
低维转高维
使用reshape函数,执行如下操作:
%% 维度转换
A=1:12;
% 一维转二维
B2=reshape(A,[6,2])
B2 =
1 7
2 8
3 9
4 10
5 11
6 12
% 一维转三维
B3=reshape(A,[2,2,3])
B3(:,:,1) =
1 3
2 4
B3(:,:,2) =
5 7
6 8
B3(:,:,3) =
9 11
10 12
% 二维转三维
C3=reshape(B2,[2,2,3])