How to generate a matrix with assigned probability?

Hi,
I want to generate a matrix of size (m,n) that has 1's and 0's, where each column has at random x% 1's and about (100-x)% 0. after every execution the matrix should change randomly.
For ex - suppose matrix A is a (5,2) matrix and x=0.8 i:e 80% are 1
then A should be
A=[1,1,1,0,1;1,0,1,1,1] % 1st itration
A=A=[0,1,1,1,1;1,1,1,0,1] % 2nd itration
How can I do it? Is there any way to generate it without using a for loop?
Thank You

 Accepted Answer

it doesn't matter whereas it run in for-loop or not.
x = 0.8; % probability of 1s
m = 5;
n = 2;
% for ...
A = rand(m,n) < x;
% end

More Answers (1)

% x is the probability of 1
% m rows and n columns
A=binornd(1,x,n,m)';
% another random matrix
A=binornd(1,x,n,m)';

Categories

Find more on Random Number Generation in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!