Shuffling ones in a column

1 回表示 (過去 30 日間)
Tim
Tim 2012 年 10 月 11 日
Hi,
I have a binary matrix, which looks like this:
1 1 1 1 1 1
0 1 1 1 1 1
0 0 1 1 1 1
0 0 1 1 1 1
0 0 0 1 1 1
0 0 0 1 1 1
0 0 0 0 1 1
0 0 0 0 1 1
0 0 0 0 0 1
0 0 0 0 0 1
What should I do when I want to shuffle the fixed amount of ones in one of the columns?
For instance, in an array the shuffling could look like this: 1111000000 --> 0001100101.
I guess this is quite a basic question, but I wasn't able to find the answer anywhere. Thanks in advance!
Cheers, Tim

採用された回答

Matt J
Matt J 2012 年 10 月 11 日
If you want things shuffled uniformly/randomly, you could use randperm. Here's an example,
>> E='11110000';
>> E(randperm(8))
ans =
01000111
  2 件のコメント
Tim
Tim 2012 年 10 月 11 日
Thanks! Works like a charm :)
Syed Imam
Syed Imam 2012 年 11 月 8 日
how to de-randomize the data to get back to original data ?? >> E='11110000'; >> E(randperm(8)) ans = 01000111 (WORKS FINE TO RANDOMIZE THE DATA)
how to de-randomize the randomized data to get the answer '11110000'

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

その他の回答 (1 件)

Syed Imam
Syed Imam 2012 年 11 月 8 日
>> E='11110000'; >> E(randperm(8)) ans = 01000111 (WORKS FINE TO RANDOMIZE THE DATA)
how to de-randomize the randomized data to get the answer '11110000'
  1 件のコメント
Matt J
Matt J 2012 年 11 月 8 日
You cannot.

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

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by