看Matlab的help文檔講得不是清楚。
先給上一段代碼:
>> a=[1 2 3;4 5 6;7 8 9;10 11 12];
>> b=reshape(a,2,6);
這段代碼的結果是這樣的:
>> a
1 2 3
4 5 6
7 8 9
10 11 12
>> b
1 7 2 8 3 9
4 10 5 11 6 12
對於 b=reshape(a,m,n);
其中的規律是這樣的,先把矩陣a按列拆分,然後拼接成一個大小爲m*n的向量。然後對這個向量每隔m間隔取一個元素組成一個向量b_i,之後的向量b_i+1也是這樣生成,只不過第一個元素往下移一位。這樣做完之後得到m個大小爲n的行向量,將這些行向量拼接即可得到矩陣b。
以後寫matlab要引以爲鑑,儘量少用for循環,多用矩陣或者向量的方式來處理。
轉載自
http://blog.sina.com.cn/s/blog_9444ed240101dxx3.html