I need to generate all 0/1 matrices

Hi, i would like to generate all different 5x5 triangle matrices which just have 0 and 1 as elements.
It's important that i really get all and not just a lot.
Is there a command for it? If not how can i programm it?
I appreciate your help a lot.

 Réponse acceptée

Walter Roberson
Walter Roberson le 2 Juil 2013
M = dec2bin(0:2^15-1, 15);
Now each row of M is the content of one triangular matrix, but in linear form. You can pre-construct the linear indices of the triangular matrix you want (upper or lower), and go through assigning through those indices in turn.
Here is a constructor:
AllTriang = arrayfun( @(N) subsassgn(zeros(5,5), struct('type', '()', 'subs', {[1:5 7:10 13:15 19:20 25]}), dec2bin(S, 15)), 0:2^15-1, 'Uniform', 0);

1 commentaire

AllTriang = arrayfun( @(N) subsasgn(zeros(5,5), struct('type', '()', 'subs', {{[1:5 7:10 13:15 19:20 25]}}), dec2bin(N, 15)-'0'), 0:2^15-1, 'Uniform', 0);

Connectez-vous pour commenter.

Plus de réponses (2)

Kevin
Kevin le 2 Juil 2013
Modifié(e) : Kevin le 2 Juil 2013
%This will flip through the linear indexes of a matrix and turn each value into % a binary one
A = rand(5)
for p=1:end
if A(p)<=.5
A(p)= 0
else
A(p)=1
end
end
Edit: triu(A) and tril(A) return the upper and lower triangular portions of A, respectively. Tack that onto my previous post and you should be all set.
andreas
andreas le 2 Juil 2013

0 votes

Thank you Walter. The first part is a really great tip. Unfortunately i am not able to get the 2nd part going. Do you have the whole file avaiable for it?

1 commentaire

Jan
Jan le 3 Juil 2013
@andreas: Please post comments to an answer in the corresponding comment section and explain "not able to get going" with details: EDo you get an error message? If so, which one?

Connectez-vous pour commenter.

Community Treasure Hunt

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

Start Hunting!

Translated by