[問題[ 生出各種數字的排列組合

看板MATLAB作者 (klain)時間14年前 (2011/11/20 15:06), 編輯推噓3(307)
留言10則, 5人參與, 最新討論串1/1
我想要生出一個矩陣, 列舉所有給定集合內數字的各種排列組合 譬如給定集合{1,3,5} 我想生出一個27*3的矩陣, 包含[1 1 1]到[5 5 5]的27種排列組合. 我想到的是用 p=perms([1 1 1 3 3 3 5 5 5]) p(:,4:9)=[]; p=unique(p,'rows'); 這樣的確可以做到, 但是不知道有沒有更好的方法呢? 因為這樣寫的話, 在perms那邊會先生出一個很大矩陣, 然後再刪除掉, 好像有點不必要的感覺. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.25.106

11/20 15:38, , 1F
我注意到可以用meshgrid來解, 但是僅止於[1 1 1]~[5 5 5]這
11/20 15:38, 1F

11/20 15:38, , 2F
種3維的case, 那如果是[1 1 1 1]~[5 5 5 5]呢?
11/20 15:38, 2F

11/20 16:10, , 3F
A =[1 3 5]; ans = [A(i) A(j) A(k)] i,j,k =1~3
11/20 16:10, 3F

11/20 16:11, , 4F
三個巢狀迴圈如何?
11/20 16:11, 4F

11/20 16:15, , 5F
很笨的方法 更多維就更多迴圈
11/20 16:15, 5F

11/20 16:50, , 6F
全因子設計.p=[1 3 5];p=p(fullfact([3 3 3]));搞定...
11/20 16:50, 6F

11/20 16:52, , 7F
這樣應該最簡單,也方便在高維度使用.
11/20 16:52, 7F

11/20 16:53, , 8F
wow! 學到新招了 ψ._.
11/20 16:53, 8F

11/20 17:04, , 9F
awesome!!
11/20 17:04, 9F

11/20 19:36, , 10F
超級厲害!
11/20 19:36, 10F
文章代碼(AID): #1EoASERh (MATLAB)