看板 MATLAB 關於我們 聯絡資訊
我現在想要將原本的矩陣重複做延伸 例如 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
kevinztw:B = [A(:,1); A(:,1); A(:,2);A(:,2);A(:,3);A(:,3)] 02/16 00:56
Oxygenair:XD...我的size是不固定的 而且延伸幾倍也不是固定的 02/16 00:58
sunev:往第三個dimension疊,把第二個和第三個dimension交換,合併 02/16 05:16
DKer:AA=A(:); BB=[AA AA]; B=reshape(BB,2,:); 02/16 08:27
Oxygenair:D大的方法好像有點問題@@ 02/16 11:58
DKer:不太確定AA會長怎樣..如果是變成1*n的話 改這樣: 02/16 13:36
DKer:AA=A(:)'; 就好 02/16 13:37
DKer:啊 是這裡的問題.... B=reshape(BB,2,__); <=__要自己輸入 02/16 13:38
forloricever:kron([1 2 3; 4 5 6], ones(1, 2)) 02/29 00:04