看板 MATLAB 關於我們 聯絡資訊
※ 引述《wk4xu4j (ha)》之銘言: : 想問假設有A1矩陣,A2矩陣,兩者皆為MxN,想將他們併成一個 : A為2MxN,且A(1,1) A(3,1),依序下去,為A1(1,1) A1(2,1),依序下去的值, : 到A(2M-1,1)為A1(M, 1),依此方式到A(2M-1,N)為A1(M,N)。 : 而A(2,1) A(4,1) 為A2(1,1) A2(2,1)依序到A(2M,N)為A2(M,N)。 : 即做一個新的較大的矩陣,將舊的兩個矩陣的值,交錯的填進去。 : 有什麼好方法嗎?我用兩個for去跑,要跑很久。還是我for有寫錯讓他到不了終點? : for i=1:2:N-1 : for j=1:2:2*M-1 : A(j, i)=A1((j+1)/2, (i+1)/2) : end : end 請不要使用無謂的迴圈 [M1, N1] = size(A1); [M2, N2] = size(A2); A = zeros(M1+M2, N1); A(1:2:end, :) = A1; A(2:2:end, :) = A2; p.s. 上一篇的 onezillion大大 解法很棒, 可是有小小的瑕疵, M跟N若很大時reshape速度很慢, 但若能確定M,N的值域時, 一行的code比較美 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 211.21.63.132
wk4xu4j:這個好,謝謝 01/07 21:00
wk4xu4j:補推,感謝 01/07 21:22
vincent59:matlab 能用矩陣就用矩陣囉 01/07 21:27
diva:推 01/07 23:09
※ 編輯: mp19990920 來自: 111.67.55.174 (01/08 08:14) ※ 編輯: mp19990920 來自: 111.67.55.174 (01/08 08:17)
greg2977:我太弱了QQ 01/08 09:28
onezillion:哈,沒考慮到速度,只因為推文只能一行 XD 01/08 11:40