我正在配置如下的5D矩阵:
[nf,nx,ny,np,nz]=size(D);
诸如此类
nf=301;
nx=12;
ny=12;
np=12;
nz=12;
我需要从5D矩阵D中提取两个矩阵:
A
,例如[nf,nx,ny]=size(A);
B
,例如[nf,np,nz]=size(B);
是否有任何MATLAB代码从D
中提取这两个矩阵?
答案 0 :(得分:2)
为此,您需要为二维选择特定的下标索引值,从multidimensional array中提取数据,然后根据需要使用squeeze
函数折叠得到的长度为1的维度。这是A
和B
的工作方式:
pIndex = 2; % Second index of dimension 4
zIndex = 3; % Third index of dimension 5
A = D(:, :, :, pIndex, zIndex); % Don't need squeeze because they
% are the trailing dimensions
xIndex = 1; % First index of dimension 2
yIndex = 12; % Last index of dimension 3
B = squeeze(D(:, xIndex, yIndex, :, :));
请注意,使用colon作为索引将包括该维度的所有下标。