How to create the combination of zeros and ones matrix in matlab?

9 ビュー (過去 30 日間)
Dong Jun Jung
Dong Jun Jung 2019 年 11 月 12 日
コメント済み: Dong Jun Jung 2019 年 11 月 13 日
Hi
I want to create N X n_C_k matrix using combination function C about 0, 1. The 'k' means the number of '1' and all other elements in matrix are '0'.
For example, if N=4 and k=2, the combination shows the results '1100','1010','1001','0110','0101','0011'. And I want to create the matrix like
A=[1 1 1 0 0 0
1 0 0 1 1 0
0 1 0 1 0 1
0 0 1 0 1 1]
How could i do?

採用された回答

Rik
Rik 2019 年 11 月 12 日
編集済み: Rik 2019 年 11 月 12 日
Although I have the feeling this might be homework, I'm going to give a complete answer anyway. By a happy coincidence, this code happens to reproduce your column order.
N=4;k=2;
v=1:N;
C1=nchoosek(v,k);%find rows that should be 1
C2=repmat((1:size(C1,1))',1,size(C1,2));%find the column indices
out=accumarray([C1(:) C2(:)],ones(numel(C1),1));%fill a zero matrix
Or similarly, as Stephen suggested:
R = nchoosek(1:N,k);
C = ndgrid(1:size(R,1),1:size(R,2));
out = accumarray([R(:),C(:)],1);
  3 件のコメント
Rik
Rik 2019 年 11 月 12 日
Thank you, good catch. I've edited it into my answer so it doesn't get hidden in the comments.
Dong Jun Jung
Dong Jun Jung 2019 年 11 月 13 日
Thank you so much

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrices and Arrays についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by