Matrix of statuses or matching; discrete one-to-one mapping

1 view (last 30 days)
Hello,
I need to create all possible matricies of zeros and ones, where the sums of rows and columns is 1, while the size of the matrix is NxK, where N and K are predefined variables. Is there a simple function for this problem?

Accepted Answer

Dr. Seis
Dr. Seis on 30 Apr 2012
You can't do this with any old NxK matrix, it must be a square NxN matrix. Otherwise your condition, that the sums of individual rows are 1 and sums of individual cols are also 1, will not be valid. There isn't a simple function (that I know of), but there is a simple solution (provided you are not trying to find for large N). See the example below for N = 4:
N = 4;
A = eye(N);
B = perms(1:N);
C = zeros(N,N,size(B,1));
for ii = 1 : size(B,1)
C(:,:,ii) = A(:,B(ii,:));
end
disp(C)

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices 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!