我有一个以下形式的3d矩阵,
AA = [1,1;2,2];
BB = [1,1;2,2];
CC = [1,1;2,2];
ZZ = cat(3,AA,BB,CC)
NEW_CODE = [1 1; 1 1; 1 1; 2 2; 2 2; 2 2;]
基本上,我的代码以NEW_code的形式创建了一个矩阵,我需要将其传输回ZZ。
需要明确的是,从
NEW_CODE =
1 1
1 1
1 1
2 2
2 2
2 2
收件人,
ZZ(:,:,1) =
1 1
2 2
ZZ(:,:,2) =
1 1
2 2
ZZ(:,:,3) =
1 1
2 2
,我尝试过,但没有成功
attempt=NEW_CODE(:,1:3+1:end);
您可以使用reshape
分割NEW_DATA
矩阵的上下"两半",然后使用shiftdim
根据需要重新排列结果
ZZ2 = shiftdim( reshape( NEW_CODE, [], 2, 2 ), 1 );
您可以使用返回true的isequal(ZZ,ZZ2)
来检查这是否正确。
我现在没有Matlab的副本,所以你需要仔细检查这个
permute( reshape( NEW_CODE' , 2 , 3 , 2 ) , [ 1 3 2 ] )