Re: [問題] 關於矩陣合併

看板MATLAB作者 (澔呆)時間11年前 (2013/01/07 01:12), 編輯推噓2(209)
留言11則, 3人參與, 最新討論串2/3 (看更多)
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

01/07 01:19, , 1F
好耶,可是如果我在y方向也想交錯,該怎麼辦?感覺就不能
01/07 01:19, 1F

01/07 01:19, , 2F
一條一條填,得一點一點填了是嗎? 先謝謝你的這個 >///<
01/07 01:19, 2F

01/07 08:34, , 3F
轉成斜的以後做相加應該可以~但不好寫...
01/07 08:34, 3F

01/07 08:39, , 4F
for迴圈應該沒寫錯~只是很大而已
01/07 08:39, 4F

01/07 08:40, , 5F
先定義A的大小以及將兩個迴圈寫在一起
01/07 08:40, 5F

01/07 08:40, , 6F
看這樣能優化多少吧
01/07 08:40, 6F

01/07 13:00, , 7F
A=reshape([A1' ; A2'],[N 2*M])'
01/07 13:00, 7F

01/07 20:57, , 8F
樓上的作法好酷,謝謝。轉成斜的是什麼意思呀,看了下面
01/07 20:57, 8F

01/07 20:58, , 9F
的回文,應該有辦法了,謝謝你囉
01/07 20:58, 9F

01/07 21:01, , 10F
不過不懂之前兩個for去跑還有計算,也沒這麼久,這感覺不
01/07 21:01, 10F

01/07 21:01, , 11F
是很難,他卻很久 @@"
01/07 21:01, 11F
文章代碼(AID): #1GwR25J- (MATLAB)
文章代碼(AID): #1GwR25J- (MATLAB)