How to create a m*n matrix with 0,1 entries?

1 回表示 (過去 30 日間)
sn at
sn at 2017 年 2 月 14 日
編集済み: sn at 2017 年 2 月 14 日
In this matrix All entries are zeros except for a single 1 in each row and at most a single 1 in each column?
  2 件のコメント
John D'Errico
John D'Errico 2017 年 2 月 14 日
Trivial.
eye(m,n)
That fits your requirements.
Do you have some more information on what you really need?
sn at
sn at 2017 年 2 月 14 日
nonzero elements are not necessarily on the main diagonal, in fact they must be randomly distributed: for example like this.
[1 0 0 0
0 0 1 0]

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

採用された回答

John D'Errico
John D'Errico 2017 年 2 月 14 日
編集済み: John D'Errico 2017 年 2 月 14 日
Did you say random until we had to prod you? :)
The requirements imply that m<=n.
A = eye(m,n);
A(randperm(m),randperm(n))
That yields a fixed number of ones. If you want the result to sometimes have less than m ones, then just start with a diagonal matrix with some of the diagonal elements as zero. Then you can define the number of non-zeros in advance. You can even choose the number of them randomly.
help diag
  1 件のコメント
sn at
sn at 2017 年 2 月 14 日
編集済み: sn at 2017 年 2 月 14 日
Thanks.

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

その他の回答 (1 件)

the cyclist
the cyclist 2017 年 2 月 14 日
One way to do this
eye(m,n)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by