How to create a random Bernoulli matrix ?

I want to create a 256x256 random Bernoulli matrix, how to do that in matlab ?

1 个评论

It's simple. A Bernoulli trial produces one of only two outcomes (say 0 or 1). You can use binord. For example p=0.2; n=256; A=binornd(1,p*ones(n));
produces an nxn array of Bernoulli trials which are either 0 or 1 in each outcome. Hope this answers your question.

请先登录,再进行评论。

 采纳的回答

p=0.5; %probability of success
n=256;
A=rand(n);
A=(A<p)
or
p=0.5;
A=(rand(256)<p)

5 个评论

Thank you so much, another question (if it's fine with you), how to generate a random Gaussian matrix ? (also 256x256)
A=normrnd(mean,standard dev,m,n);
For a cluster around a an average of '0' with sigma 1:
A=normrnd(0,1,256,256);
and what if I want a -+1 Bernoulli matrix to be used in compressed sensing as a sensing matrix ?
If you have a matrix A of 0 and 1 then you can make it a matrix of -1 and +1 by using
A*2 - 1

请先登录,再进行评论。

更多回答(2 个)

I use this.
bernoulli_matrix = randsrc(rows,cols,[-1,1]);
It's simple. A Bernoulli trial produces one of only two outcomes (say 0 or 1). You can use binord. For example p=0.2; n=256; A=binornd(1,p*ones(n));
produces an 256x256 array of Bernoulli trials which are either 0 or 1 in each outcome. Hope this answers your question.

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by