MATLAB中矩阵reshape的顺序规律
MATLAB中矩阵reshape的顺序规律
首先,使用以下代码生成一个(3,4,5)的三维矩阵:
count = 0;
for i = 1:3
for j = 1:4
for k = 1:5
count = count + 1;
M(i,j,k) = count;
end
end
end
如果按照三维坐标中,x,y表示水平轴,z表示垂直轴的话,上面的矩阵可以几何表示为:
使用 MM = reshape(M,12,5);
将M矩阵转换为(12,5)的二维矩阵,转换后的MM矩阵为:
可见它是按照先排x方向,后排y方向的顺序排列的,写成程序应该是:
count = 0;
for j = 1:4
for i = 1:3
count = count+1;
MM(count,:) = M(i,j,:);
end
end
使用MM = reshape(M,60,1)
,将M化为(60,1)的一维矩阵,则为:
可见它是按照x方向排,然后按照y方向排,最后按照z方向排。
总结,matlab的reshape()
函数的排列是按照维度顺序按列排列的。