作者OpenGoodHate (什麽东西什麽东西)
看板MATLAB
标题[问题] 组合问题
时间Tue Nov 14 19:28:29 2017
目前有三个阵列
a=[a1 a2 a3]
b=[b1 b2 b3 b4 b5]
c=[c1 c2 c3]
需要组合出
(a1 c1) (a1 c2) (a1 c3)
(a2 c1) (a2 c2) (a2 c3)
(a3 c1) (a3 c2) (a3 c3)
(a1 b1 c1) (a1 b1 c2) (a1 b1 c3)
(a2 b1 c1) (a2 b1 c2) (a2 b1 c3)
(a3 b1 c1) (a3 b1 c2) (a3 b1 c3)
(a1 b1 b2 c1) (a1 b2 b1 c1)
(a1 b1 b2 c2) (a1 b2 b1 c2)
(a1 b1 b2 c3) (a1 b2 b1 c3)
(a2 b1 b2 c1) (a2 b2 b1 c1)
(a2 b1 b2 c2) (a2 b2 b1 c2)
(a2 b1 b2 c3) (a2 b2 b1 c3)
(a3 b1 b2 c1) (a3 b2 b1 c1)
(a3 b1 b2 c2) (a3 b2 b1 c2)
(a3 b1 b2 c3) (a3 b2 b1 c3)
(a1 b1 b2 b3 c1) (a1 b1 b3 b2 c1)
(a1 b2 b1 b3 c1) (a1 b2 b3 b1 c1)
(a1 b3 b1 b2 c1) (a1 b3 b2 b1 c1)
(a1 b1 b2 b3 c2) (a1 b1 b3 b2 c2)
(a1 b2 b1 b3 c2) (a1 b2 b3 b1 c2)
(a1 b3 b1 b2 c2) (a1 b3 b2 b1 c2)
(a1 b1 b2 b3 c3) (a1 b1 b3 b2 c3)
(a1 b2 b1 b3 c3) (a1 b2 b3 b1 c3)
(a1 b3 b1 b2 c3) (a1 b3 b2 b1 c3)
(a2 b1 b2 b3 c1) (a2 b1 b3 b2 c1)
(a2 b2 b1 b3 c1) (a2 b2 b3 b1 c1)
(a2 b3 b1 b2 c1) (a2 b3 b2 b1 c1)
(a2 b1 b2 b3 c2) (a2 b1 b3 b2 c2)
(a2 b2 b1 b3 c2) (a2 b2 b3 b1 c2)
(a2 b3 b1 b2 c2) (a2 b3 b2 b1 c2)
(a2 b1 b2 b3 c3) (a2 b1 b3 b2 c3)
(a2 b2 b1 b3 c3) (a2 b2 b3 b1 c3)
(a2 b3 b1 b2 c3) (a2 b3 b2 b1 c3)
... 依此类推
请问列出所有状况的排序怎麽写会比较好
内建的Function 也行但是好像有大小限制
目前只想到a阵列跟c阵列先排完
b阵列自己跟自己排完後再把两个结果展开结合
不过b阵列这边目前不知道该怎麽写
现在是matlab新手有点苦脑
UPDATE:
不好意思修正了一下
之前漏打了c3的组合
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 163.21.235.222
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/MATLAB/M.1510658913.A.7B6.html
1F:推 sunev: a3 c3 没用到? 11/14 21:34
2F:→ LiamIssac: 你应该可以理出一个规则 这样大家才可以告诉你怎麽写 11/15 14:41
3F:→ jhs710041: 我完全看不出要怎麽类推... 11/15 14:56
※ 编辑: OpenGoodHate (111.83.2.131), 11/15/2017 19:16:25
4F:推 sunev: n=3;bb=perms(b(1:n));[A,B,C]=ndgrid(a,1:size(bb,1),c); 11/15 20:22
5F:→ sunev: [A(:), bb(B(:),:), C(:)] 11/15 20:23
6F:→ OpenGoodHate: 感谢S大,目前暂时拿S大的code来修改中 11/17 22:15