Matlab 将矩阵转换为数组
我有一个矩阵是Matlab 将矩阵转换为数组,matlab,indexing,reshape,dimension,Matlab,Indexing,Reshape,Dimension,我有一个矩阵是size(a)=20x31088,另一个向量是301088x1。 我需要将A转换为97x97x32x20的数组。但它必须以一定的顺序,向量线性_索引以特定的顺序包含a97x97x32的线性索引 例如,A(20,4)处的元素应放入B(:,:,:,20)的线性索引(4)。希望这是有道理的。A的每一行将形成自己的97x97x32矩阵,元素将被放置在linear_index中的值指定的索引处 我做过一次,但它需要shiftim命令: B(1:length(lx) , linear_inde
size(a)=20x31088
,另一个向量是301088x1
。
我需要将A
转换为97x97x32x20
的数组。但它必须以一定的顺序,向量线性_索引
以特定的顺序包含a97x97x32
的线性索引
例如,A(20,4)
处的元素应放入B(:,:,:,20)
的线性索引(4)
。希望这是有道理的。A
的每一行将形成自己的97x97x32
矩阵,元素将被放置在linear_index
中的值指定的索引处
我做过一次,但它需要shiftim
命令:
B(1:length(lx) , linear_index) = A(1:length(lx) , :);
B = shiftdim(A,1);
这是可行的,但是shiftim
命令需要一些时间,尤其是当我的矩阵的大小可以达到97x97x32x194
时,如何
>> B = A(:,linear_index)'; %' re-order and permute
>> B = reshape( B, 97, 97, 32, 194, 20 );
是关于什么的?八度?您应该清楚地表明,我的道歉,这是我第一次使用这个网站。谢谢。这是Matlab,但我已经找到了解决方案。谢谢。我使用这个A(线性指数:)=A(1:长度(线性指数),:);B=重塑(A[97 97 32 20]);可能和你写的东西类似。@RossAnthonyDiJulio所以
线性索引是一个反向映射。。。美好的