How to create a random Bernoulli matrix ?

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

1 Kommentar

Bilal Siddiqui
Bilal Siddiqui am 2 Okt. 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 nxn array of Bernoulli trials which are either 0 or 1 in each outcome. Hope this answers your question.

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Robert Dylans
Robert Dylans am 7 Okt. 2015
Bearbeitet: Robert Dylans am 7 Okt. 2015

3 Stimmen

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

5 Kommentare

Mohab Mostafa
Mohab Mostafa am 7 Okt. 2015
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);
Mohab Mostafa
Mohab Mostafa am 7 Okt. 2015
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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Byron McMullen
Byron McMullen am 15 Feb. 2021

3 Stimmen

I use this.
bernoulli_matrix = randsrc(rows,cols,[-1,1]);
Bilal Siddiqui
Bilal Siddiqui am 2 Okt. 2018

1 Stimme

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.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by