How to create a random Bernoulli matrix ?

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

1 Commento

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.

Accedi per commentare.

 Risposta accettata

Robert Dylans
Robert Dylans il 7 Ott 2015
Modificato: Robert Dylans il 7 Ott 2015
p=0.5; %probability of success
n=256;
A=rand(n);
A=(A<p)
or
p=0.5;
A=(rand(256)<p)

5 Commenti

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

Accedi per commentare.

Più risposte (2)

Byron McMullen
Byron McMullen il 15 Feb 2021
I use this.
bernoulli_matrix = randsrc(rows,cols,[-1,1]);
Bilal Siddiqui
Bilal Siddiqui il 2 Ott 2018
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.

Categorie

Community Treasure Hunt

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

Start Hunting!

Translated by