random number with fixed summation

I randomly generated the matrix f1; where R is 8 and T is 11. In the following we have f1.
The summation of each column should have a fixed value k, for example k=4. I found the "randfixedsum" function that perfectly generates random number with fixed summation. But the elements are not zero and 1. Could you please help me to change f1 to a matrix that the summation of each column is exactly k.
f1 =
1 0 1 0 0 0 0 1 1 0 0
1 0 0 0 0 1 1 0 1 0 0
1 0 0 1 1 1 0 0 0 0 0
1 0 1 1 0 0 1 1 1 1 1
1 1 0 1 0 0 0 1 1 1 0
0 1 1 0 1 0 1 0 1 1 0
0 1 1 0 0 0 0 1 1 0 0
0 1 1 1 1 0 1 0 1 1 0

 Accepted Answer

Use the ‘randperm’ function on each column of f1:
f1 = zeros(8,11)
for ix = 1:size(f1,2)
f1(randperm(size(f1,1),k),ix) = 1;
end

More Answers (1)

There are multiple ways to handle this, but the easiest way is just to round() the numbers.

Categories

Asked:

on 14 Nov 2016

Commented:

on 15 Nov 2016

Community Treasure Hunt

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

Start Hunting!