[問題]多維矩陣的維度縮減

作者: brahmsliu (薛丁格的貓)   2014-10-17 03:06:00
大家好,
想請問一下,如果我現在手邊有個m*2*n (三維)矩陣但是我想把它變成m*n矩陣
在matlab裡面要如何寫指令呢?
我想過先宣告一個空的矩陣再用for loop把東西放進去,但是問題出在matlab自動把平面
認定成m*2的平面延伸n次,因此似乎無法強迫matlab去認定這矩陣為m*n的平面n延伸2次,
因此無法正確放入對應的數值。
感覺是個不難的問題,但是想法一直卡住,所以上來請大家幫忙,謝謝!!
作者: jack10313 (彩色筆)   2014-10-17 04:05:00
reshape?
作者: brahmsliu (薛丁格的貓)   2014-10-17 04:54:00
reshape只能用在維度都不變的狀態,ie. m*n*2但我弄成m*n就不行了QQ,但還是謝謝喔剛想出來了for i=1:n new(:,i)=old(:,1,i) 不知對不對
作者: mp19990920 (郝渴連)   2014-10-17 11:14:00
a = zeros(m, 2, n);b = permute(a, [1 3 2]);話說a有m*2*n個元素,你要的是2個有m*n個元素的矩陣嗎?若是的話也可 b1=squeeze(a(:, 1, :));b2=squeeze(a(:, 2, :));

Links booklink

Contact Us: admin [ a t ] ucptt.com