I want to generate multiple m x n (size of known matrix A) binary matrices. The rule to respect is that every row has to contain a single 1.
Suppose I want to generate 10 matrices called randmat of size(A). This is the code I've written combining suggestions found on this forum. It should use a for cycle to generate random matrices of 0 and 1, then force each row to sum up to 1. The problem is that I'm using variables of different type, and the code doesn't work (MATLAB error: 'Unable to perform assignment because brace indexing is not supported for variables of this type').
for i = 0:9 [r,c] = size(A); randmat{i+1} = randi([0 1],r,c); rowsum = sum(randmat,2); randmat{i+1} = bsxfun(@rdivide,randmat{i+1},rowsum);end
How could It be solved?
Thanks in advance for your help.
Best Answer