0

我有一个矩阵size(A) = 20x301088和另一个向量。我需要转换成一个数组,即. 但它必须按特定顺序排列,向量包含 a以特定顺序排列的线性索引。linear_index301088x1A97x97x32x20linear_index97x97x32

例如,元素 atA(20,4)应放入linear_index(4)of B(:,:,:,20)。希望这是有道理的。的每一行都A将创建自己的97x97x32矩阵,并且元素将放置在 中的值指定的索引处linear_index

我做过一次,但它需要shiftdim命令:

B(1:length(lx) , linear_index) = A(1:length(lx) , :);
B = shiftdim(A,1);

这行得通,但是该shiftdim命令需要一些时间,尤其是当我的矩阵大小可以达到97x97x32x194.

4

1 回答 1

0

怎么样

>> B = A(:,linear_index)'; %' re-order  and permute
>> B = reshape( B, 97, 97, 32, 194, 20 );
于 2013-07-25T21:50:58.260 回答