[问题] 排列组合问题

楼主: OpenGoodHate (什么东西什么东西)   2017-11-14 19:28:29
目前有三个阵列
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的组合
楼主: OpenGoodHate (什么东西什么东西)   2017-11-17 22:15:00
感谢S大,目前暂时拿S大的code来修改中
作者: sunev (Veritas)   2017-11-14 21:34:00
a3 c3 没用到?
作者: LiamIssac (Madchester)   2017-11-15 14:41:00
你应该可以理出一个规则 这样大家才可以告诉你怎么写
作者: jhs710041 (没想过)   2017-11-15 14:56:00
我完全看不出要怎么类推...
作者: sunev (Veritas)   2017-11-15 20:22:00
n=3;bb=perms(b(1:n));[A,B,C]=ndgrid(a,1:size(bb,1),c);[A(:), bb(B(:),:), C(:)]

Links booklink

Contact Us: admin [ a t ] ucptt.com