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()函數的排列是按照維度順序按列排列的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM