MATLAB Answers

How to generate a matrix with assigned probability?

3 views (last 30 days)
Aryan Jain
Aryan Jain on 13 Sep 2020
Commented: Aryan Jain on 13 Sep 2020
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

  0 Comments

Sign in to comment.

Accepted Answer

Bruno Luong
Bruno Luong on 13 Sep 2020
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)

Asad (Mehrzad)  Khoddam
Asad (Mehrzad) Khoddam on 13 Sep 2020
% 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)';

Community Treasure Hunt

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

Start Hunting!