Azzera filtri
Azzera filtri

All Combination of Matrices from two single values

1 visualizzazione (ultimi 30 giorni)
Hello, Greetings! I have two values (suppose 1 and 2). How can I form all the possible combinations of 3*3 matrices from these two values. For example all the possible combinations of 2*2 matices from 1 and 2 are [1 2; 1 2]; [1 2; 2 1]; [1 1; 2 2]; [2 1; 2 1]; [1 1; 1 2]; [1 1; 2 1] etc...

Risposta accettata

Walter Roberson
Walter Roberson il 5 Ott 2022
values = [1 2];
N = 3;
outputs = reshape(values(dec2bin(0:2^(N^2)-1).' - '0' + 1), N, N, [])
outputs =
outputs(:,:,1) = 1 1 1 1 1 1 1 1 1 outputs(:,:,2) = 1 1 1 1 1 1 1 1 2 outputs(:,:,3) = 1 1 1 1 1 2 1 1 1 outputs(:,:,4) = 1 1 1 1 1 2 1 1 2 outputs(:,:,5) = 1 1 2 1 1 1 1 1 1 outputs(:,:,6) = 1 1 2 1 1 1 1 1 2 outputs(:,:,7) = 1 1 2 1 1 2 1 1 1 outputs(:,:,8) = 1 1 2 1 1 2 1 1 2 outputs(:,:,9) = 1 1 1 1 1 1 1 2 1 outputs(:,:,10) = 1 1 1 1 1 1 1 2 2 outputs(:,:,11) = 1 1 1 1 1 2 1 2 1 outputs(:,:,12) = 1 1 1 1 1 2 1 2 2 outputs(:,:,13) = 1 1 2 1 1 1 1 2 1 outputs(:,:,14) = 1 1 2 1 1 1 1 2 2 outputs(:,:,15) = 1 1 2 1 1 2 1 2 1 outputs(:,:,16) = 1 1 2 1 1 2 1 2 2 outputs(:,:,17) = 1 1 1 1 2 1 1 1 1 outputs(:,:,18) = 1 1 1 1 2 1 1 1 2 outputs(:,:,19) = 1 1 1 1 2 2 1 1 1 outputs(:,:,20) = 1 1 1 1 2 2 1 1 2 outputs(:,:,21) = 1 1 2 1 2 1 1 1 1 outputs(:,:,22) = 1 1 2 1 2 1 1 1 2 outputs(:,:,23) = 1 1 2 1 2 2 1 1 1 outputs(:,:,24) = 1 1 2 1 2 2 1 1 2 outputs(:,:,25) = 1 1 1 1 2 1 1 2 1 outputs(:,:,26) = 1 1 1 1 2 1 1 2 2 outputs(:,:,27) = 1 1 1 1 2 2 1 2 1 outputs(:,:,28) = 1 1 1 1 2 2 1 2 2 outputs(:,:,29) = 1 1 2 1 2 1 1 2 1 outputs(:,:,30) = 1 1 2 1 2 1 1 2 2 outputs(:,:,31) = 1 1 2 1 2 2 1 2 1 outputs(:,:,32) = 1 1 2 1 2 2 1 2 2 outputs(:,:,33) = 1 2 1 1 1 1 1 1 1 outputs(:,:,34) = 1 2 1 1 1 1 1 1 2 outputs(:,:,35) = 1 2 1 1 1 2 1 1 1 outputs(:,:,36) = 1 2 1 1 1 2 1 1 2 outputs(:,:,37) = 1 2 2 1 1 1 1 1 1 outputs(:,:,38) = 1 2 2 1 1 1 1 1 2 outputs(:,:,39) = 1 2 2 1 1 2 1 1 1 outputs(:,:,40) = 1 2 2 1 1 2 1 1 2 outputs(:,:,41) = 1 2 1 1 1 1 1 2 1 outputs(:,:,42) = 1 2 1 1 1 1 1 2 2 outputs(:,:,43) = 1 2 1 1 1 2 1 2 1 outputs(:,:,44) = 1 2 1 1 1 2 1 2 2 outputs(:,:,45) = 1 2 2 1 1 1 1 2 1 outputs(:,:,46) = 1 2 2 1 1 1 1 2 2 outputs(:,:,47) = 1 2 2 1 1 2 1 2 1 outputs(:,:,48) = 1 2 2 1 1 2 1 2 2 outputs(:,:,49) = 1 2 1 1 2 1 1 1 1 outputs(:,:,50) = 1 2 1 1 2 1 1 1 2 outputs(:,:,51) = 1 2 1 1 2 2 1 1 1 outputs(:,:,52) = 1 2 1 1 2 2 1 1 2 outputs(:,:,53) = 1 2 2 1 2 1 1 1 1 outputs(:,:,54) = 1 2 2 1 2 1 1 1 2 outputs(:,:,55) = 1 2 2 1 2 2 1 1 1 outputs(:,:,56) = 1 2 2 1 2 2 1 1 2 outputs(:,:,57) = 1 2 1 1 2 1 1 2 1 outputs(:,:,58) = 1 2 1 1 2 1 1 2 2 outputs(:,:,59) = 1 2 1 1 2 2 1 2 1 outputs(:,:,60) = 1 2 1 1 2 2 1 2 2 outputs(:,:,61) = 1 2 2 1 2 1 1 2 1 outputs(:,:,62) = 1 2 2 1 2 1 1 2 2 outputs(:,:,63) = 1 2 2 1 2 2 1 2 1 outputs(:,:,64) = 1 2 2 1 2 2 1 2 2 outputs(:,:,65) = 1 1 1 1 1 1 2 1 1 outputs(:,:,66) = 1 1 1 1 1 1 2 1 2 outputs(:,:,67) = 1 1 1 1 1 2 2 1 1 outputs(:,:,68) = 1 1 1 1 1 2 2 1 2 outputs(:,:,69) = 1 1 2 1 1 1 2 1 1 outputs(:,:,70) = 1 1 2 1 1 1 2 1 2 outputs(:,:,71) = 1 1 2 1 1 2 2 1 1 outputs(:,:,72) = 1 1 2 1 1 2 2 1 2 outputs(:,:,73) = 1 1 1 1 1 1 2 2 1 outputs(:,:,74) = 1 1 1 1 1 1 2 2 2 outputs(:,:,75) = 1 1 1 1 1 2 2 2 1 outputs(:,:,76) = 1 1 1 1 1 2 2 2 2 outputs(:,:,77) = 1 1 2 1 1 1 2 2 1 outputs(:,:,78) = 1 1 2 1 1 1 2 2 2 outputs(:,:,79) = 1 1 2 1 1 2 2 2 1 outputs(:,:,80) = 1 1 2 1 1 2 2 2 2 outputs(:,:,81) = 1 1 1 1 2 1 2 1 1 outputs(:,:,82) = 1 1 1 1 2 1 2 1 2 outputs(:,:,83) = 1 1 1 1 2 2 2 1 1 outputs(:,:,84) = 1 1 1 1 2 2 2 1 2 outputs(:,:,85) = 1 1 2 1 2 1 2 1 1 outputs(:,:,86) = 1 1 2 1 2 1 2 1 2 outputs(:,:,87) = 1 1 2 1 2 2 2 1 1 outputs(:,:,88) = 1 1 2 1 2 2 2 1 2 outputs(:,:,89) = 1 1 1 1 2 1 2 2 1 outputs(:,:,90) = 1 1 1 1 2 1 2 2 2 outputs(:,:,91) = 1 1 1 1 2 2 2 2 1 outputs(:,:,92) = 1 1 1 1 2 2 2 2 2 outputs(:,:,93) = 1 1 2 1 2 1 2 2 1 outputs(:,:,94) = 1 1 2 1 2 1 2 2 2 outputs(:,:,95) = 1 1 2 1 2 2 2 2 1 outputs(:,:,96) = 1 1 2 1 2 2 2 2 2 outputs(:,:,97) = 1 2 1 1 1 1 2 1 1 outputs(:,:,98) = 1 2 1 1 1 1 2 1 2 outputs(:,:,99) = 1 2 1 1 1 2 2 1 1 outputs(:,:,100) = 1 2 1 1 1 2 2 1 2 outputs(:,:,101) = 1 2 2 1 1 1 2 1 1 outputs(:,:,102) = 1 2 2 1 1 1 2 1 2 outputs(:,:,103) = 1 2 2 1 1 2 2 1 1 outputs(:,:,104) = 1 2 2 1 1 2 2 1 2 outputs(:,:,105) = 1 2 1 1 1 1 2 2 1 outputs(:,:,106) = 1 2 1 1 1 1 2 2 2 outputs(:,:,107) = 1 2 1 1 1 2 2 2 1 outputs(:,:,108) = 1 2 1 1 1 2 2 2 2 outputs(:,:,109) = 1 2 2 1 1 1 2 2 1 outputs(:,:,110) = 1 2 2 1 1 1 2 2 2 outputs(:,:,111) = 1 2 2 1 1 2 2 2 1 outputs(:,:,112) = 1 2 2 1 1 2 2 2 2 outputs(:,:,113) = 1 2 1 1 2 1 2 1 1 outputs(:,:,114) = 1 2 1 1 2 1 2 1 2 outputs(:,:,115) = 1 2 1 1 2 2 2 1 1 outputs(:,:,116) = 1 2 1 1 2 2 2 1 2 outputs(:,:,117) = 1 2 2 1 2 1 2 1 1 outputs(:,:,118) = 1 2 2 1 2 1 2 1 2 outputs(:,:,119) = 1 2 2 1 2 2 2 1 1 outputs(:,:,120) = 1 2 2 1 2 2 2 1 2 outputs(:,:,121) = 1 2 1 1 2 1 2 2 1 outputs(:,:,122) = 1 2 1 1 2 1 2 2 2 outputs(:,:,123) = 1 2 1 1 2 2 2 2 1 outputs(:,:,124) = 1 2 1 1 2 2 2 2 2 outputs(:,:,125) = 1 2 2 1 2 1 2 2 1 outputs(:,:,126) = 1 2 2 1 2 1 2 2 2 outputs(:,:,127) = 1 2 2 1 2 2 2 2 1 outputs(:,:,128) = 1 2 2 1 2 2 2 2 2 outputs(:,:,129) = 1 1 1 2 1 1 1 1 1 outputs(:,:,130) = 1 1 1 2 1 1 1 1 2 outputs(:,:,131) = 1 1 1 2 1 2 1 1 1 outputs(:,:,132) = 1 1 1 2 1 2 1 1 2 outputs(:,:,133) = 1 1 2 2 1 1 1 1 1 outputs(:,:,134) = 1 1 2 2 1 1 1 1 2 outputs(:,:,135) = 1 1 2 2 1 2 1 1 1 outputs(:,:,136) = 1 1 2 2 1 2 1 1 2 outputs(:,:,137) = 1 1 1 2 1 1 1 2 1 outputs(:,:,138) = 1 1 1 2 1 1 1 2 2 outputs(:,:,139) = 1 1 1 2 1 2 1 2 1 outputs(:,:,140) = 1 1 1 2 1 2 1 2 2 outputs(:,:,141) = 1 1 2 2 1 1 1 2 1 outputs(:,:,142) = 1 1 2 2 1 1 1 2 2 outputs(:,:,143) = 1 1 2 2 1 2 1 2 1 outputs(:,:,144) = 1 1 2 2 1 2 1 2 2 outputs(:,:,145) = 1 1 1 2 2 1 1 1 1 outputs(:,:,146) = 1 1 1 2 2 1 1 1 2 outputs(:,:,147) = 1 1 1 2 2 2 1 1 1 outputs(:,:,148) = 1 1 1 2 2 2 1 1 2 outputs(:,:,149) = 1 1 2 2 2 1 1 1 1 outputs(:,:,150) = 1 1 2 2 2 1 1 1 2 outputs(:,:,151) = 1 1 2 2 2 2 1 1 1 outputs(:,:,152) = 1 1 2 2 2 2 1 1 2 outputs(:,:,153) = 1 1 1 2 2 1 1 2 1 outputs(:,:,154) = 1 1 1 2 2 1 1 2 2 outputs(:,:,155) = 1 1 1 2 2 2 1 2 1 outputs(:,:,156) = 1 1 1 2 2 2 1 2 2 outputs(:,:,157) = 1 1 2 2 2 1 1 2 1 outputs(:,:,158) = 1 1 2 2 2 1 1 2 2 outputs(:,:,159) = 1 1 2 2 2 2 1 2 1 outputs(:,:,160) = 1 1 2 2 2 2 1 2 2 outputs(:,:,161) = 1 2 1 2 1 1 1 1 1 outputs(:,:,162) = 1 2 1 2 1 1 1 1 2 outputs(:,:,163) = 1 2 1 2 1 2 1 1 1 outputs(:,:,164) = 1 2 1 2 1 2 1 1 2 outputs(:,:,165) = 1 2 2 2 1 1 1 1 1 outputs(:,:,166) = 1 2 2 2 1 1 1 1 2 outputs(:,:,167) = 1 2 2 2 1 2 1 1 1 outputs(:,:,168) = 1 2 2 2 1 2 1 1 2 outputs(:,:,169) = 1 2 1 2 1 1 1 2 1 outputs(:,:,170) = 1 2 1 2 1 1 1 2 2 outputs(:,:,171) = 1 2 1 2 1 2 1 2 1 outputs(:,:,172) = 1 2 1 2 1 2 1 2 2 outputs(:,:,173) = 1 2 2 2 1 1 1 2 1 outputs(:,:,174) = 1 2 2 2 1 1 1 2 2 outputs(:,:,175) = 1 2 2 2 1 2 1 2 1 outputs(:,:,176) = 1 2 2 2 1 2 1 2 2 outputs(:,:,177) = 1 2 1 2 2 1 1 1 1 outputs(:,:,178) = 1 2 1 2 2 1 1 1 2 outputs(:,:,179) = 1 2 1 2 2 2 1 1 1 outputs(:,:,180) = 1 2 1 2 2 2 1 1 2 outputs(:,:,181) = 1 2 2 2 2 1 1 1 1 outputs(:,:,182) = 1 2 2 2 2 1 1 1 2 outputs(:,:,183) = 1 2 2 2 2 2 1 1 1 outputs(:,:,184) = 1 2 2 2 2 2 1 1 2 outputs(:,:,185) = 1 2 1 2 2 1 1 2 1 outputs(:,:,186) = 1 2 1 2 2 1 1 2 2 outputs(:,:,187) = 1 2 1 2 2 2 1 2 1 outputs(:,:,188) = 1 2 1 2 2 2 1 2 2 outputs(:,:,189) = 1 2 2 2 2 1 1 2 1 outputs(:,:,190) = 1 2 2 2 2 1 1 2 2 outputs(:,:,191) = 1 2 2 2 2 2 1 2 1 outputs(:,:,192) = 1 2 2 2 2 2 1 2 2 outputs(:,:,193) = 1 1 1 2 1 1 2 1 1 outputs(:,:,194) = 1 1 1 2 1 1 2 1 2 outputs(:,:,195) = 1 1 1 2 1 2 2 1 1 outputs(:,:,196) = 1 1 1 2 1 2 2 1 2 outputs(:,:,197) = 1 1 2 2 1 1 2 1 1 outputs(:,:,198) = 1 1 2 2 1 1 2 1 2 outputs(:,:,199) = 1 1 2 2 1 2 2 1 1 outputs(:,:,200) = 1 1 2 2 1 2 2 1 2 outputs(:,:,201) = 1 1 1 2 1 1 2 2 1 outputs(:,:,202) = 1 1 1 2 1 1 2 2 2 outputs(:,:,203) = 1 1 1 2 1 2 2 2 1 outputs(:,:,204) = 1 1 1 2 1 2 2 2 2 outputs(:,:,205) = 1 1 2 2 1 1 2 2 1 outputs(:,:,206) = 1 1 2 2 1 1 2 2 2 outputs(:,:,207) = 1 1 2 2 1 2 2 2 1 outputs(:,:,208) = 1 1 2 2 1 2 2 2 2 outputs(:,:,209) = 1 1 1 2 2 1 2 1 1 outputs(:,:,210) = 1 1 1 2 2 1 2 1 2 outputs(:,:,211) = 1 1 1 2 2 2 2 1 1 outputs(:,:,212) = 1 1 1 2 2 2 2 1 2 outputs(:,:,213) = 1 1 2 2 2 1 2 1 1 outputs(:,:,214) = 1 1 2 2 2 1 2 1 2 outputs(:,:,215) = 1 1 2 2 2 2 2 1 1 outputs(:,:,216) = 1 1 2 2 2 2 2 1 2 outputs(:,:,217) = 1 1 1 2 2 1 2 2 1 outputs(:,:,218) = 1 1 1 2 2 1 2 2 2 outputs(:,:,219) = 1 1 1 2 2 2 2 2 1 outputs(:,:,220) = 1 1 1 2 2 2 2 2 2 outputs(:,:,221) = 1 1 2 2 2 1 2 2 1 outputs(:,:,222) = 1 1 2 2 2 1 2 2 2 outputs(:,:,223) = 1 1 2 2 2 2 2 2 1 outputs(:,:,224) = 1 1 2 2 2 2 2 2 2 outputs(:,:,225) = 1 2 1 2 1 1 2 1 1 outputs(:,:,226) = 1 2 1 2 1 1 2 1 2 outputs(:,:,227) = 1 2 1 2 1 2 2 1 1 outputs(:,:,228) = 1 2 1 2 1 2 2 1 2 outputs(:,:,229) = 1 2 2 2 1 1 2 1 1 outputs(:,:,230) = 1 2 2 2 1 1 2 1 2 outputs(:,:,231) = 1 2 2 2 1 2 2 1 1 outputs(:,:,232) = 1 2 2 2 1 2 2 1 2 outputs(:,:,233) = 1 2 1 2 1 1 2 2 1 outputs(:,:,234) = 1 2 1 2 1 1 2 2 2 outputs(:,:,235) = 1 2 1 2 1 2 2 2 1 outputs(:,:,236) = 1 2 1 2 1 2 2 2 2 outputs(:,:,237) = 1 2 2 2 1 1 2 2 1 outputs(:,:,238) = 1 2 2 2 1 1 2 2 2 outputs(:,:,239) = 1 2 2 2 1 2 2 2 1 outputs(:,:,240) = 1 2 2 2 1 2 2 2 2 outputs(:,:,241) = 1 2 1 2 2 1 2 1 1 outputs(:,:,242) = 1 2 1 2 2 1 2 1 2 outputs(:,:,243) = 1 2 1 2 2 2 2 1 1 outputs(:,:,244) = 1 2 1 2 2 2 2 1 2 outputs(:,:,245) = 1 2 2 2 2 1 2 1 1 outputs(:,:,246) = 1 2 2 2 2 1 2 1 2 outputs(:,:,247) = 1 2 2 2 2 2 2 1 1 outputs(:,:,248) = 1 2 2 2 2 2 2 1 2 outputs(:,:,249) = 1 2 1 2 2 1 2 2 1 outputs(:,:,250) = 1 2 1 2 2 1 2 2 2 outputs(:,:,251) = 1 2 1 2 2 2 2 2 1 outputs(:,:,252) = 1 2 1 2 2 2 2 2 2 outputs(:,:,253) = 1 2 2 2 2 1 2 2 1 outputs(:,:,254) = 1 2 2 2 2 1 2 2 2 outputs(:,:,255) = 1 2 2 2 2 2 2 2 1 outputs(:,:,256) = 1 2 2 2 2 2 2 2 2 outputs(:,:,257) = 2 1 1 1 1 1 1 1 1 outputs(:,:,258) = 2 1 1 1 1 1 1 1 2 outputs(:,:,259) = 2 1 1 1 1 2 1 1 1 outputs(:,:,260) = 2 1 1 1 1 2 1 1 2 outputs(:,:,261) = 2 1 2 1 1 1 1 1 1 outputs(:,:,262) = 2 1 2 1 1 1 1 1 2 outputs(:,:,263) = 2 1 2 1 1 2 1 1 1 outputs(:,:,264) = 2 1 2 1 1 2 1 1 2 outputs(:,:,265) = 2 1 1 1 1 1 1 2 1 outputs(:,:,266) = 2 1 1 1 1 1 1 2 2 outputs(:,:,267) = 2 1 1 1 1 2 1 2 1 outputs(:,:,268) = 2 1 1 1 1 2 1 2 2 outputs(:,:,269) = 2 1 2 1 1 1 1 2 1 outputs(:,:,270) = 2 1 2 1 1 1 1 2 2 outputs(:,:,271) = 2 1 2 1 1 2 1 2 1 outputs(:,:,272) = 2 1 2 1 1 2 1 2 2 outputs(:,:,273) = 2 1 1 1 2 1 1 1 1 outputs(:,:,274) = 2 1 1 1 2 1 1 1 2 outputs(:,:,275) = 2 1 1 1 2 2 1 1 1 outputs(:,:,276) = 2 1 1 1 2 2 1 1 2 outputs(:,:,277) = 2 1 2 1 2 1 1 1 1 outputs(:,:,278) = 2 1 2 1 2 1 1 1 2 outputs(:,:,279) = 2 1 2 1 2 2 1 1 1 outputs(:,:,280) = 2 1 2 1 2 2 1 1 2 outputs(:,:,281) = 2 1 1 1 2 1 1 2 1 outputs(:,:,282) = 2 1 1 1 2 1 1 2 2 outputs(:,:,283) = 2 1 1 1 2 2 1 2 1 outputs(:,:,284) = 2 1 1 1 2 2 1 2 2 outputs(:,:,285) = 2 1 2 1 2 1 1 2 1 outputs(:,:,286) = 2 1 2 1 2 1 1 2 2 outputs(:,:,287) = 2 1 2 1 2 2 1 2 1 outputs(:,:,288) = 2 1 2 1 2 2 1 2 2 outputs(:,:,289) = 2 2 1 1 1 1 1 1 1 outputs(:,:,290) = 2 2 1 1 1 1 1 1 2 outputs(:,:,291) = 2 2 1 1 1 2 1 1 1 outputs(:,:,292) = 2 2 1 1 1 2 1 1 2 outputs(:,:,293) = 2 2 2 1 1 1 1 1 1 outputs(:,:,294) = 2 2 2 1 1 1 1 1 2 outputs(:,:,295) = 2 2 2 1 1 2 1 1 1 outputs(:,:,296) = 2 2 2 1 1 2 1 1 2 outputs(:,:,297) = 2 2 1 1 1 1 1 2 1 outputs(:,:,298) = 2 2 1 1 1 1 1 2 2 outputs(:,:,299) = 2 2 1 1 1 2 1 2 1 outputs(:,:,300) = 2 2 1 1 1 2 1 2 2 outputs(:,:,301) = 2 2 2 1 1 1 1 2 1 outputs(:,:,302) = 2 2 2 1 1 1 1 2 2 outputs(:,:,303) = 2 2 2 1 1 2 1 2 1 outputs(:,:,304) = 2 2 2 1 1 2 1 2 2 outputs(:,:,305) = 2 2 1 1 2 1 1 1 1 outputs(:,:,306) = 2 2 1 1 2 1 1 1 2 outputs(:,:,307) = 2 2 1 1 2 2 1 1 1 outputs(:,:,308) = 2 2 1 1 2 2 1 1 2 outputs(:,:,309) = 2 2 2 1 2 1 1 1 1 outputs(:,:,310) = 2 2 2 1 2 1 1 1 2 outputs(:,:,311) = 2 2 2 1 2 2 1 1 1 outputs(:,:,312) = 2 2 2 1 2 2 1 1 2 outputs(:,:,313) = 2 2 1 1 2 1 1 2 1 outputs(:,:,314) = 2 2 1 1 2 1 1 2 2 outputs(:,:,315) = 2 2 1 1 2 2 1 2 1 outputs(:,:,316) = 2 2 1 1 2 2 1 2 2 outputs(:,:,317) = 2 2 2 1 2 1 1 2 1 outputs(:,:,318) = 2 2 2 1 2 1 1 2 2 outputs(:,:,319) = 2 2 2 1 2 2 1 2 1 outputs(:,:,320) = 2 2 2 1 2 2 1 2 2 outputs(:,:,321) = 2 1 1 1 1 1 2 1 1 outputs(:,:,322) = 2 1 1 1 1 1 2 1 2 outputs(:,:,323) = 2 1 1 1 1 2 2 1 1 outputs(:,:,324) = 2 1 1 1 1 2 2 1 2 outputs(:,:,325) = 2 1 2 1 1 1 2 1 1 outputs(:,:,326) = 2 1 2 1 1 1 2 1 2 outputs(:,:,327) = 2 1 2 1 1 2 2 1 1 outputs(:,:,328) = 2 1 2 1 1 2 2 1 2 outputs(:,:,329) = 2 1 1 1 1 1 2 2 1 outputs(:,:,330) = 2 1 1 1 1 1 2 2 2 outputs(:,:,331) = 2 1 1 1 1 2 2 2 1 outputs(:,:,332) = 2 1 1 1 1 2 2 2 2 outputs(:,:,333) = 2 1 2 1 1 1 2 2 1 outputs(:,:,334) = 2 1 2 1 1 1 2 2 2 outputs(:,:,335) = 2 1 2 1 1 2 2 2 1 outputs(:,:,336) = 2 1 2 1 1 2 2 2 2 outputs(:,:,337) = 2 1 1 1 2 1 2 1 1 outputs(:,:,338) = 2 1 1 1 2 1 2 1 2 outputs(:,:,339) = 2 1 1 1 2 2 2 1 1 outputs(:,:,340) = 2 1 1 1 2 2 2 1 2 outputs(:,:,341) = 2 1 2 1 2 1 2 1 1 outputs(:,:,342) = 2 1 2 1 2 1 2 1 2 outputs(:,:,343) = 2 1 2 1 2 2 2 1 1 outputs(:,:,344) = 2 1 2 1 2 2 2 1 2 outputs(:,:,345) = 2 1 1 1 2 1 2 2 1 outputs(:,:,346) = 2 1 1 1 2 1 2 2 2 outputs(:,:,347) = 2 1 1 1 2 2 2 2 1 outputs(:,:,348) = 2 1 1 1 2 2 2 2 2 outputs(:,:,349) = 2 1 2 1 2 1 2 2 1 outputs(:,:,350) = 2 1 2 1 2 1 2 2 2 outputs(:,:,351) = 2 1 2 1 2 2 2 2 1 outputs(:,:,352) = 2 1 2 1 2 2 2 2 2 outputs(:,:,353) = 2 2 1 1 1 1 2 1 1 outputs(:,:,354) = 2 2 1 1 1 1 2 1 2 outputs(:,:,355) = 2 2 1 1 1 2 2 1 1 outputs(:,:,356) = 2 2 1 1 1 2 2 1 2 outputs(:,:,357) = 2 2 2 1 1 1 2 1 1 outputs(:,:,358) = 2 2 2 1 1 1 2 1 2 outputs(:,:,359) = 2 2 2 1 1 2 2 1 1 outputs(:,:,360) = 2 2 2 1 1 2 2 1 2 outputs(:,:,361) = 2 2 1 1 1 1 2 2 1 outputs(:,:,362) = 2 2 1 1 1 1 2 2 2 outputs(:,:,363) = 2 2 1 1 1 2 2 2 1 outputs(:,:,364) = 2 2 1 1 1 2 2 2 2 outputs(:,:,365) = 2 2 2 1 1 1 2 2 1 outputs(:,:,366) = 2 2 2 1 1 1 2 2 2 outputs(:,:,367) = 2 2 2 1 1 2 2 2 1 outputs(:,:,368) = 2 2 2 1 1 2 2 2 2 outputs(:,:,369) = 2 2 1 1 2 1 2 1 1 outputs(:,:,370) = 2 2 1 1 2 1 2 1 2 outputs(:,:,371) = 2 2 1 1 2 2 2 1 1 outputs(:,:,372) = 2 2 1 1 2 2 2 1 2 outputs(:,:,373) = 2 2 2 1 2 1 2 1 1 outputs(:,:,374) = 2 2 2 1 2 1 2 1 2 outputs(:,:,375) = 2 2 2 1 2 2 2 1 1 outputs(:,:,376) = 2 2 2 1 2 2 2 1 2 outputs(:,:,377) = 2 2 1 1 2 1 2 2 1 outputs(:,:,378) = 2 2 1 1 2 1 2 2 2 outputs(:,:,379) = 2 2 1 1 2 2 2 2 1 outputs(:,:,380) = 2 2 1 1 2 2 2 2 2 outputs(:,:,381) = 2 2 2 1 2 1 2 2 1 outputs(:,:,382) = 2 2 2 1 2 1 2 2 2 outputs(:,:,383) = 2 2 2 1 2 2 2 2 1 outputs(:,:,384) = 2 2 2 1 2 2 2 2 2 outputs(:,:,385) = 2 1 1 2 1 1 1 1 1 outputs(:,:,386) = 2 1 1 2 1 1 1 1 2 outputs(:,:,387) = 2 1 1 2 1 2 1 1 1 outputs(:,:,388) = 2 1 1 2 1 2 1 1 2 outputs(:,:,389) = 2 1 2 2 1 1 1 1 1 outputs(:,:,390) = 2 1 2 2 1 1 1 1 2 outputs(:,:,391) = 2 1 2 2 1 2 1 1 1 outputs(:,:,392) = 2 1 2 2 1 2 1 1 2 outputs(:,:,393) = 2 1 1 2 1 1 1 2 1 outputs(:,:,394) = 2 1 1 2 1 1 1 2 2 outputs(:,:,395) = 2 1 1 2 1 2 1 2 1 outputs(:,:,396) = 2 1 1 2 1 2 1 2 2 outputs(:,:,397) = 2 1 2 2 1 1 1 2 1 outputs(:,:,398) = 2 1 2 2 1 1 1 2 2 outputs(:,:,399) = 2 1 2 2 1 2 1 2 1 outputs(:,:,400) = 2 1 2 2 1 2 1 2 2 outputs(:,:,401) = 2 1 1 2 2 1 1 1 1 outputs(:,:,402) = 2 1 1 2 2 1 1 1 2 outputs(:,:,403) = 2 1 1 2 2 2 1 1 1 outputs(:,:,404) = 2 1 1 2 2 2 1 1 2 outputs(:,:,405) = 2 1 2 2 2 1 1 1 1 outputs(:,:,406) = 2 1 2 2 2 1 1 1 2 outputs(:,:,407) = 2 1 2 2 2 2 1 1 1 outputs(:,:,408) = 2 1 2 2 2 2 1 1 2 outputs(:,:,409) = 2 1 1 2 2 1 1 2 1 outputs(:,:,410) = 2 1 1 2 2 1 1 2 2 outputs(:,:,411) = 2 1 1 2 2 2 1 2 1 outputs(:,:,412) = 2 1 1 2 2 2 1 2 2 outputs(:,:,413) = 2 1 2 2 2 1 1 2 1 outputs(:,:,414) = 2 1 2 2 2 1 1 2 2 outputs(:,:,415) = 2 1 2 2 2 2 1 2 1 outputs(:,:,416) = 2 1 2 2 2 2 1 2 2 outputs(:,:,417) = 2 2 1 2 1 1 1 1 1 outputs(:,:,418) = 2 2 1 2 1 1 1 1 2 outputs(:,:,419) = 2 2 1 2 1 2 1 1 1 outputs(:,:,420) = 2 2 1 2 1 2 1 1 2 outputs(:,:,421) = 2 2 2 2 1 1 1 1 1 outputs(:,:,422) = 2 2 2 2 1 1 1 1 2 outputs(:,:,423) = 2 2 2 2 1 2 1 1 1 outputs(:,:,424) = 2 2 2 2 1 2 1 1 2 outputs(:,:,425) = 2 2 1 2 1 1 1 2 1 outputs(:,:,426) = 2 2 1 2 1 1 1 2 2 outputs(:,:,427) = 2 2 1 2 1 2 1 2 1 outputs(:,:,428) = 2 2 1 2 1 2 1 2 2 outputs(:,:,429) = 2 2 2 2 1 1 1 2 1 outputs(:,:,430) = 2 2 2 2 1 1 1 2 2 outputs(:,:,431) = 2 2 2 2 1 2 1 2 1 outputs(:,:,432) = 2 2 2 2 1 2 1 2 2 outputs(:,:,433) = 2 2 1 2 2 1 1 1 1 outputs(:,:,434) = 2 2 1 2 2 1 1 1 2 outputs(:,:,435) = 2 2 1 2 2 2 1 1 1 outputs(:,:,436) = 2 2 1 2 2 2 1 1 2 outputs(:,:,437) = 2 2 2 2 2 1 1 1 1 outputs(:,:,438) = 2 2 2 2 2 1 1 1 2 outputs(:,:,439) = 2 2 2 2 2 2 1 1 1 outputs(:,:,440) = 2 2 2 2 2 2 1 1 2 outputs(:,:,441) = 2 2 1 2 2 1 1 2 1 outputs(:,:,442) = 2 2 1 2 2 1 1 2 2 outputs(:,:,443) = 2 2 1 2 2 2 1 2 1 outputs(:,:,444) = 2 2 1 2 2 2 1 2 2 outputs(:,:,445) = 2 2 2 2 2 1 1 2 1 outputs(:,:,446) = 2 2 2 2 2 1 1 2 2 outputs(:,:,447) = 2 2 2 2 2 2 1 2 1 outputs(:,:,448) = 2 2 2 2 2 2 1 2 2 outputs(:,:,449) = 2 1 1 2 1 1 2 1 1 outputs(:,:,450) = 2 1 1 2 1 1 2 1 2 outputs(:,:,451) = 2 1 1 2 1 2 2 1 1 outputs(:,:,452) = 2 1 1 2 1 2 2 1 2 outputs(:,:,453) = 2 1 2 2 1 1 2 1 1 outputs(:,:,454) = 2 1 2 2 1 1 2 1 2 outputs(:,:,455) = 2 1 2 2 1 2 2 1 1 outputs(:,:,456) = 2 1 2 2 1 2 2 1 2 outputs(:,:,457) = 2 1 1 2 1 1 2 2 1 outputs(:,:,458) = 2 1 1 2 1 1 2 2 2 outputs(:,:,459) = 2 1 1 2 1 2 2 2 1 outputs(:,:,460) = 2 1 1 2 1 2 2 2 2 outputs(:,:,461) = 2 1 2 2 1 1 2 2 1 outputs(:,:,462) = 2 1 2 2 1 1 2 2 2 outputs(:,:,463) = 2 1 2 2 1 2 2 2 1 outputs(:,:,464) = 2 1 2 2 1 2 2 2 2 outputs(:,:,465) = 2 1 1 2 2 1 2 1 1 outputs(:,:,466) = 2 1 1 2 2 1 2 1 2 outputs(:,:,467) = 2 1 1 2 2 2 2 1 1 outputs(:,:,468) = 2 1 1 2 2 2 2 1 2 outputs(:,:,469) = 2 1 2 2 2 1 2 1 1 outputs(:,:,470) = 2 1 2 2 2 1 2 1 2 outputs(:,:,471) = 2 1 2 2 2 2 2 1 1 outputs(:,:,472) = 2 1 2 2 2 2 2 1 2 outputs(:,:,473) = 2 1 1 2 2 1 2 2 1 outputs(:,:,474) = 2 1 1 2 2 1 2 2 2 outputs(:,:,475) = 2 1 1 2 2 2 2 2 1 outputs(:,:,476) = 2 1 1 2 2 2 2 2 2 outputs(:,:,477) = 2 1 2 2 2 1 2 2 1 outputs(:,:,478) = 2 1 2 2 2 1 2 2 2 outputs(:,:,479) = 2 1 2 2 2 2 2 2 1 outputs(:,:,480) = 2 1 2 2 2 2 2 2 2 outputs(:,:,481) = 2 2 1 2 1 1 2 1 1 outputs(:,:,482) = 2 2 1 2 1 1 2 1 2 outputs(:,:,483) = 2 2 1 2 1 2 2 1 1 outputs(:,:,484) = 2 2 1 2 1 2 2 1 2 outputs(:,:,485) = 2 2 2 2 1 1 2 1 1 outputs(:,:,486) = 2 2 2 2 1 1 2 1 2 outputs(:,:,487) = 2 2 2 2 1 2 2 1 1 outputs(:,:,488) = 2 2 2 2 1 2 2 1 2 outputs(:,:,489) = 2 2 1 2 1 1 2 2 1 outputs(:,:,490) = 2 2 1 2 1 1 2 2 2 outputs(:,:,491) = 2 2 1 2 1 2 2 2 1 outputs(:,:,492) = 2 2 1 2 1 2 2 2 2 outputs(:,:,493) = 2 2 2 2 1 1 2 2 1 outputs(:,:,494) = 2 2 2 2 1 1 2 2 2 outputs(:,:,495) = 2 2 2 2 1 2 2 2 1 outputs(:,:,496) = 2 2 2 2 1 2 2 2 2 outputs(:,:,497) = 2 2 1 2 2 1 2 1 1 outputs(:,:,498) = 2 2 1 2 2 1 2 1 2 outputs(:,:,499) = 2 2 1 2 2 2 2 1 1 outputs(:,:,500) = 2 2 1 2 2 2 2 1 2 outputs(:,:,501) = 2 2 2 2 2 1 2 1 1 outputs(:,:,502) = 2 2 2 2 2 1 2 1 2 outputs(:,:,503) = 2 2 2 2 2 2 2 1 1 outputs(:,:,504) = 2 2 2 2 2 2 2 1 2 outputs(:,:,505) = 2 2 1 2 2 1 2 2 1 outputs(:,:,506) = 2 2 1 2 2 1 2 2 2 outputs(:,:,507) = 2 2 1 2 2 2 2 2 1 outputs(:,:,508) = 2 2 1 2 2 2 2 2 2 outputs(:,:,509) = 2 2 2 2 2 1 2 2 1 outputs(:,:,510) = 2 2 2 2 2 1 2 2 2 outputs(:,:,511) = 2 2 2 2 2 2 2 2 1 outputs(:,:,512) = 2 2 2 2 2 2 2 2 2
  15 Commenti
Torsten
Torsten il 13 Ott 2022
Modificato: Torsten il 13 Ott 2022
The complete code can be downloaded here:
list = SetPartition(15, 3);
size(list)
ans = 1×2
2375101 1
icount = 0;
for i = 1:size(list,1)
if (numel(list{i}{1})==3) && (numel(list{i}{2})==4)
icount = icount + 1;
list1{icount}{1} = list{i}{1};
list1{icount}{2} = list{i}{2};
list1{icount}{3} = list{i}{3};
end
if (numel(list{i}{2})==3) && (numel(list{i}{3})==4)
icount = icount + 1;
list1{icount}{1} = list{i}{2};
list1{icount}{2} = list{i}{3};
list1{icount}{3} = list{i}{1};
end
if (numel(list{i}{1})==3) && (numel(list{i}{3})==4)
icount = icount + 1;
list1{icount}{1} = list{i}{1};
list1{icount}{2} = list{i}{3};
list1{icount}{3} = list{i}{2};
end
if (numel(list{i}{2})==3) && (numel(list{i}{1})==4)
icount = icount + 1;
list1{icount}{1} = list{i}{2};
list1{icount}{2} = list{i}{1};
list1{icount}{3} = list{i}{3};
end
if (numel(list{i}{3})==3) && (numel(list{i}{2})==4)
icount = icount + 1;
list1{icount}{1} = list{i}{3};
list1{icount}{2} = list{i}{2};
list1{icount}{3} = list{i}{1};
end
if (numel(list{i}{3})==3) && (numel(list{i}{1})==4)
icount = icount + 1;
list1{icount}{1} = list{i}{3};
list1{icount}{2} = list{i}{1};
list1{icount}{3} = list{i}{2};
end
end
A = zeros(icount,15);
for i = 1:icount
A(i,list1{i}{1}) = 4;
A(i,list1{i}{2}) = 6;
A(i,list1{i}{3}) = 10;
end
%Print number of (3x5) matrices = nchoosek(15,3) * nchoosek(12,4) = 225225
icount
icount = 225225
A = unique(A,'rows');
size(A,1)
ans = 225225
A = reshape(A,icount,3,5);
function list = SetPartition(n, k)
% Purpose: Set partitioning
% LIST = SetPartition(N)
% N is an integer
% Return the cell list of all partitions of the integer set {1:N}.
% Output LIST is the cell of size (B x 1), where B is Bell number B(n),
% the number of ways of partitionning. Each list{j} is a partition of the
% set {1:N}.
%
% LIST = SetPartition(N, K)
% N and K are integers. Specify the fixed size K of the partitions.
% Return the cell list of all partitions of the integer set {1:N} in K
% non-empty subsets.
% Output LIST is the cell of size (S x 1), where S Stirling number of the
% second kind S(n,k). Each list{j} is a partition of {1:N} having
% exactly K non-empty subsets.
% LIST is large for N large (of course) and K ~ N/2
%
% User can provide a set with elements different than {1:N} by substitute
% the first input argument (N) with SetElements
% >> LIST = SetPartition(SetElements, ...)
% where SetElements is an array or cell array of N elements.
%
% USAGE EXAMPLE 1:
%
% % Find all the length-2 partitions of {1,2,3,4}
% p=SetPartition(4,2);
% % Display
% fprintf('All the length-2 partitions of {1,2,3,4} are:\n')
% for i=1:size(p,1)
% fprintf('\t')
% for j=1:length(p{i})
% s = sprintf('%d,', p{i}{j});
% s(end)=[];
% s = sprintf('{%s}', s);
% if j<length(p{i})
% s = sprintf('%s + ', s);
% end
% fprintf('%s', s)
% end
% fprintf('\n')
% end
%
% EXAMPLE 2:
% p=SetPartition({'mouse' 'dog' 'cat'});
%
% Notes:
% - The result has the same class as N.
% - The result size growth very steep with respect to N. It advisable to
% call PARTITION with N <= 11.
% - Recursive algorithm in a general case (i.e. when only N is provided)
% Iteration (derecursive loops) when K is specified.
%
% See also Bell, Stirling2nd, nchoosek, ndgrid, perms, DispPartObj,
% partitions, partdisp (Matt Fig's FEX File ID: #24185)
%
% Author: Bruno Luong <brunoluong@yahoo.com>
% History
% Original: 16-May-2009
% 17-May-2009: No more sorting + derecurse when K is provided
% 18-May-2009: Fix the bug for N=0, minor improvements
% 23-May-2003: Possibility to partition generic set elements
% 02-Jun-2009: comments change
if iscell(n) || ~isscalar(n) % NOTE: isscalar({1}) is TRUE
% Generic set elements
elements = reshape(n,1,[]);
n = size(elements,2); % double
if nargin>=2 % cast n to the same class of k
n = feval(class(k), n);
end
else
% standard set
elements = (1:n);
end
n = round(n);
if n<0
error('Partition requires n>=0: n=%d', n);
end
if nargin<2
if n==0
list = {{zeros(0,1)}};
else
list = partall(n, elements);
end
else
k = round(k);
% Cast k to the same class of n
k = feval(class(n), k);
if k>n
error('SetPartition requires k<=n: k=%d, n=%d', k, n);
elseif k<0
error('SetPartition requires k>=0: k=%d', k);
elseif k==0
if n>0
list = {};
else %if n==0
list = {{}};
end
else
list = partk(n, k, elements);
end
end
end % SetPartition
function list = partall(n, elements)
% LIST = PARTALL(N)
% Return the cell list of all partitions of the integer set {1:n}
% Output LIST is the cell of size (b x 1), where b is Bell number Bn.
% Each list{j} is a partition of {1:n}
if n==1
list = {{elements(n)}};
else
% Allocate
bn = Bell(n);
list = cell(bn, 1);
pos = 0;
% recursive call
lp = partall(n-1, elements);
for i=1:size(lp,1)
part_i = insert(lp{i}, n, 1, elements);
list(pos+(1:size(part_i,1))) = part_i;
pos = pos + size(part_i,1);
end
end
end % partall
function list = partk(n, k, elements)
% LIST = PARTK(N, K)
% Return the cell list of all partitions of the integer set {1:n} in k
% non-empty subsets.
% Output LIST is the cell of size (s x 1), where s Stirling number of the
% second kind S(n,k). Each list{j} is a partition of {1:n} having
% exactly K non-empty subsets.
m = n-k+1;
% L is a temporary buffer, L(kappa) stores partition for nu-elements
% nu will be defined later (see line #162)
L = cell(m,1);
% Initialize single partition
for j=1:m
L{j} = {{elements(1:j)}};
end
% Compute the array of Stirling numbers
[trash S] = Stirling2nd(n, k);
% Derecursive loops
for kappa=2:k
L{1} = {num2cell(elements(1:kappa))};
for j=2:m
nu = j + kappa - 1;
% Allocate
list = cell(S(nu,kappa), 1);
pos = 0;
lp = L{j};
for i=1:size(lp,1)
% augmented insertion
part_i = insert(lp{i}, nu, 2, elements);
list(pos+(1:size(part_i,1))) = part_i;
pos = pos + size(part_i,1);
end
lp = L{j-1};
for i=1:size(lp,1)
% same-size insertion
part_i = insert(lp{i}, nu, 0, elements);
list(pos+(1:size(part_i,1))) = part_i;
pos = pos + size(part_i,1);
end
% Assign the result
L{j} = list;
end % j-loop
end % kappa-loop
% Final result found in the last position of the buffer
list = L{m};
end % partk
% Create a new list of partions from one partition of {1,2,...n-1} and {n}
function part_i = insert(part, n, flag, elements)
% flag = 1, perform all possible insertions
% = 0, insertion that keeps constant size only
% = 2, insertion that increase by 1 the size only
l = size(part,2);
if flag == 0
m = l;
elseif flag == 2
m = 1;
else % flag == 1
m = l+1;
end
en = elements(n);
% Allocate and pre-filled
part_i = cell(m,1);
if flag<=1
[part_i{1:l}] = deal(part);
% Insert N into each individual existing subset
for j = 1:l
part_i{j}{j} = [part_i{j}{j} en];
end
end
% insert {N} as standalone subset
if flag>=1
part_i{m} = [part {en}];
end
end % insert
function [S SA] = Stirling2nd(n, k)
% S = Stirling2nd(N,K)
% N and K are integers
% Compute the Stirling's number of the second kind.
% It is the number of all possible partitions of the set {1:N}, where each
% (partition) has exactly K non-empty subsets.
%
% [S SA] = Stirling2nd(N,K) return a (N x K) array of all Stirling's
% numbers of the second kind of S(i,j) with i<=N, j<=min(K,i).
%
% Author: Bruno Luong <brunoluong@yahoo.com>
% History
% Original: 17-May-2009
% Last update: 18-May-2009, cosmetic changes
k=double(k);
n=double(n);
if k==0
if n==0
S = 1;
else
S = 0;
end
SA = zeros(n,0);
return
end
SA = nan(n,k);
SA(:,1) = 1;
SA(sub2ind(size(SA),1:k,1:k)) = 1;
for i=2:n
%for j=max(2,(i+k)-n):min(i-1,k) % ... % recursive path
for j=2:min(i-1,k)
SA(i,j) = SA(i-1,j-1) + j*SA(i-1,j);
end
end
S = SA(n,k);
end

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su Loops and Conditional Statements in Help Center e File Exchange

Prodotti


Release

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by