Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 将矩阵转换为数组_Matlab_Indexing_Reshape_Dimension - Fatal编程技术网

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
的数组。但它必须以一定的顺序,向量
线性_索引
以特定的顺序包含a
97x97x32
的线性索引

例如,
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所以
线性索引是一个反向映射。。。美好的