MATLAB对多个组数进行组合,统计相同组合的个数,并排序。

2024-12-24 17:51:30
推荐回答(1个)
回答1:

A=[0,1,2,3];
B=[1,2,3,5];
C=[0,1,2,5];
[i j]=meshgrid(1:4);
COM=[A(i(:)) B(i(:)) C(i(:));B(j(:)) C(j(:)) A(j(:))];
COM=sort(COM)';%所有的48种组合
[b m n]=unique(COM,'rows');
c=tabulate(n);
s=[COM(m(c(:,1)),:),c(:,2)];
s=sortrows(s,3)

s =

0 0 1
3 3 1
5 5 1
0 3 3
0 5 3
1 1 3
2 2 3
3 5 3
0 1 4
0 2 4
1 3 4
1 5 4
2 3 4
2 5 4
1 2 6
一 二 数
前两列就是组合,第三列是组合出现的次数