[討論] 請問矩陣重複延伸

看板MATLAB作者 (氧氣)時間14年前 (2012/02/16 00:48), 編輯推噓3(306)
留言9則, 5人參與, 最新討論串1/1
我現在想要將原本的矩陣重複做延伸 例如 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

02/16 00:56, , 1F
B = [A(:,1); A(:,1); A(:,2);A(:,2);A(:,3);A(:,3)]
02/16 00:56, 1F

02/16 00:58, , 2F
XD...我的size是不固定的 而且延伸幾倍也不是固定的
02/16 00:58, 2F

02/16 05:16, , 3F
往第三個dimension疊,把第二個和第三個dimension交換,合併
02/16 05:16, 3F

02/16 08:27, , 4F
AA=A(:); BB=[AA AA]; B=reshape(BB,2,:);
02/16 08:27, 4F

02/16 11:58, , 5F
D大的方法好像有點問題@@
02/16 11:58, 5F

02/16 13:36, , 6F
不太確定AA會長怎樣..如果是變成1*n的話 改這樣:
02/16 13:36, 6F

02/16 13:37, , 7F
AA=A(:)'; 就好
02/16 13:37, 7F

02/16 13:38, , 8F
啊 是這裡的問題.... B=reshape(BB,2,__); <=__要自己輸入
02/16 13:38, 8F

02/29 00:04, , 9F
kron([1 2 3; 4 5 6], ones(1, 2))
02/29 00:04, 9F
文章代碼(AID): #1FE-70LC (MATLAB)