作者Oxygenair (氧气)
看板MATLAB
标题[讨论] 请问矩阵重复延伸
时间Thu Feb 16 00:47:57 2012
我现在想要将原本的矩阵重复做延伸
例如
A = [ 1 2 3
4 5 6 ]
我希望延伸两倍後会变成
B = [ 1 1 2 2 3 3
4 4 5 5 6 6 ]
我知道repmat指令可以做矩阵的叠接
可是出来会是
C = [ 1 2 3 1 2 3
4 5 6 4 5 6 ]
这不是我要的结果
请问一下有没有精简快速的发法可以达成这个效果呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.127.59
1F:推 kevinztw:B = [A(:,1); A(:,1); A(:,2);A(:,2);A(:,3);A(:,3)] 02/16 00:56
2F:→ Oxygenair:XD...我的size是不固定的 而且延伸几倍也不是固定的 02/16 00:58
3F:推 sunev:往第三个dimension叠,把第二个和第三个dimension交换,合并 02/16 05:16
4F:→ DKer:AA=A(:); BB=[AA AA]; B=reshape(BB,2,:); 02/16 08:27
5F:→ Oxygenair:D大的方法好像有点问题@@ 02/16 11:58
6F:→ DKer:不太确定AA会长怎样..如果是变成1*n的话 改这样: 02/16 13:36
7F:→ DKer:AA=A(:)'; 就好 02/16 13:37
8F:→ DKer:啊 是这里的问题.... B=reshape(BB,2,__); <=__要自己输入 02/16 13:38
9F:推 forloricever:kron([1 2 3; 4 5 6], ones(1, 2)) 02/29 00:04