看板 MATLAB 關於我們 聯絡資訊
j=1; for i=1:2:N-1 A(i,:) =A1(j,:); A(i+1,:)=A2(j,:); j=j+1; end ※ 引述《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 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.233.144.252
wk4xu4j:好耶,可是如果我在y方向也想交錯,該怎麼辦?感覺就不能 01/07 01:19
wk4xu4j:一條一條填,得一點一點填了是嗎? 先謝謝你的這個 >///< 01/07 01:19
greg2977:轉成斜的以後做相加應該可以~但不好寫... 01/07 08:34
greg2977:for迴圈應該沒寫錯~只是很大而已 01/07 08:39
greg2977:先定義A的大小以及將兩個迴圈寫在一起 01/07 08:40
greg2977:看這樣能優化多少吧 01/07 08:40
onezillion:A=reshape([A1' ; A2'],[N 2*M])' 01/07 13:00
wk4xu4j:樓上的作法好酷,謝謝。轉成斜的是什麼意思呀,看了下面 01/07 20:57
wk4xu4j:的回文,應該有辦法了,謝謝你囉 01/07 20:58
wk4xu4j:不過不懂之前兩個for去跑還有計算,也沒這麼久,這感覺不 01/07 21:01
wk4xu4j:是很難,他卻很久 @@" 01/07 21:01