作者mp19990920 (郝渴连)
看板MATLAB
标题Re: [问题] 关於矩阵合并
时间Mon Jan 7 19:11:52 2013
※ 引述《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
1F:→ wk4xu4j:这个好,谢谢 01/07 21:00
2F:推 wk4xu4j:补推,感谢 01/07 21:22
3F:推 vincent59:matlab 能用矩阵就用矩阵罗 01/07 21:27
4F:推 diva:推 01/07 23:09
※ 编辑: mp19990920 来自: 111.67.55.174 (01/08 08:14)
※ 编辑: mp19990920 来自: 111.67.55.174 (01/08 08:17)
5F:推 greg2977:我太弱了QQ 01/08 09:28
6F:→ onezillion:哈,没考虑到速度,只因为推文只能一行 XD 01/08 11:40