2013-08-22 123 views
2

我想在MatLab中生成仅由1和0组成的矩阵,但我希望能够设置任何值为1的可能性。我希望在那里成为90%的几率任何元素将是1而不是0.在Matlab中生成加权随机布尔矩阵

但是,我不希望那里总是有90%1s和10%0s。我只是希望这是更可能的情况。例如。我仍然希望它能够全部为0,或50%1%和50%0,只是不太可能。

谢谢你的帮助。

回答

2

我已经写的很清楚,简单的代码来理解:

mat5x5 = rand(5); 
chanse_of_1s=.90% probability for 1s, just change it. 
chanse_of_0s=.10% probability for 0s, just change it. 
mat5x5 = arrayfun(@(x)sum(x >= cumsum([0, chanse_of_0s, chanse_of_1s])), mat5x5)-1 

只恰克的chanses!

+0

非常感谢你:) – Jack

+0

我不知道我做错了什么,但如果我只是使用该代码,所有我得到输出是mat5x5 = 2? – Jack

+0

@Jack:我已更新帖子,现在试试。 –