看板 MATLAB 關於我們 聯絡資訊
我想要生出一個矩陣, 列舉所有給定集合內數字的各種排列組合 譬如給定集合{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
klain:我注意到可以用meshgrid來解, 但是僅止於[1 1 1]~[5 5 5]這 11/20 15:38
klain:種3維的case, 那如果是[1 1 1 1]~[5 5 5 5]呢? 11/20 15:38
Raymond0710:A =[1 3 5]; ans = [A(i) A(j) A(k)] i,j,k =1~3 11/20 16:10
Raymond0710:三個巢狀迴圈如何? 11/20 16:11
Raymond0710:很笨的方法 更多維就更多迴圈 11/20 16:15
becherovka:全因子設計.p=[1 3 5];p=p(fullfact([3 3 3]));搞定... 11/20 16:50
becherovka:這樣應該最簡單,也方便在高維度使用. 11/20 16:52
DKer:wow! 學到新招了 ψ._. 11/20 16:53
tyu:awesome!! 11/20 17:04
klain:超級厲害! 11/20 19:36