排序二元变量排列

2次观看(过去30天)
沐JEUNG阳
沐JEUNG阳 于2020年5月14日
你好,
我有一个代表6个二进制变量的所有唯一组合矩阵:
N = 6;
SZ = 2 ^ N;
VEC = 0:SZ-1;
Z = DEC2BIN(VEC);
ZL =双(重塑(逻辑(Z(:) -'0'),SZ,[]));
[〜,sinx] =排序(总和(zl,2),“登高”);
ZLS = ZL(SINX,:);
ZLS(1,:)= []
-
ZLS =
0 0 0 0 0 1
0 0 0 0 1 0
0 0 0 1 0 0
0 0 1 0 0 0
0 1 0 0 0 0
1 0 0 0 0 0
0 0 0 0 1 1
0 0 0 1 0 1
......
1 1 1 1 0 1
1 1 1 1 1 0
1 1 1 1 1 1
我的目标是以下列方式对此矩阵进行排序:
  • 先从单位行向量:
1 0 0 0 0 0
0 1 0 0 0 0
..
  • 然后有所有行向量与两个1,从与1在第1列开始行向量(与行继续,其中1点开始在2列等)
1 1 0 0 0 0
1 0 1 0 0 0
1 0 0 1 0 0
......
0 1 1 0 0 0
0 1 0 1 0 0
......
0 0 1 1 0 0
0 0 1 0 1 0
等等
  • 然后都行向量与三一,首先,与1科拉姆1日开始行向量...
1 1 1 0 0 0
1 0 1 1 0 0
1 0 0 1 1 0
等等。
直到最后一行是
1 1 1 1 1 1
任何意见,无论是在怎样高于或如何产生此有序矩阵直接将不胜感激矩阵排序ZLS!感谢您的帮助!

接受答案

Ameer Hamza.
Ameer Hamza. 于2020年5月14日
编辑:Ameer Hamza. 于2020年5月14日
尝试这个
N = 6;
A = repmat({[0,1]},1,N);
M = combvec。(A {:})';
M(1,:) = [];
GRPS = splitapply(@(X){X},M和(M,2));
Z = cellfun(@(X){flipud(调用sortRows(X))},GRPS);
Z = vertcat(Z {:});
结果
>> Z.
z =
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
1 1 0 0 0 0
1 0 1 0 0 0
1 0 0 1 0 0
1 0 0 0 1 0
1 0 0 0 0 1
0 1 1 0 0 0
0 1 0 1 0 0
0 1 0 0 1 0
0 1 0 0 0 1
0 0 1 1 0 0
0 0 1 0 1 0
0 0 1 0 0 1
0 0 0 1 1 0
0 0 0 1 0 1
0 0 0 0 1 1
1 1 1 0 0 0
1 1 0 1 0 0
1 1 0 0 1 0
1 1 0 0 0 1
1 0 1 1 0 0
1 0 1 0 1 0
1 0 1 0 0 1
1 0 0 1 1 0
1 0 0 1 0 1
1 0 0 0 1 1
0 1 1 1 0 0
0 1 1 0 1 0
0 1 1 0 0 1
0 1 0 1 1 0
0 1 0 1 0 1
0 1 0 0 1 1
0 0 1 1 1 0
0 0 1 1 0 1
0 0 1 0 1 1
0 0 0 1 1 1
1 1 1 1 0 0
1 1 1 0 1 0
1 1 1 0 0 1
1 1 0 1 1 0
1 1 0 1 0 1
1 1 0 0 1 1
1 0 1 1 1 0
1 0 1 1 0 1
1 0 1 0 1 1
1 0 0 1 1 1
0 1 1 1 1 0
0 1 1 1 0 1
0 1 1 0 1 1
0 1 0 1 1 1
0 0 1 1 1 1
1 1 1 1 1 0
1 1 1 1 0 1
1 1 1 0 1 1
1 1 0 1 1 1
1 0 1 1 1 1
0 1 1 1 1 1
1 1 1 1 1 1
4评论

登录评论。

更多答案(0)

s manbetx 845


释放

R2018A

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!