combinationsで同じ配列を複数回引数に取る方法
조회 수: 7 (최근 30일)
이전 댓글 표시
以前のAnswers、
では"[0 1]から重複を許して3つ選び,それらを並べるパターンを列挙する問題"として、その回答に
T = combinations([0 1], [0 1], [0 1])
という例が掲載されていました。
私は、"[0 1]から重複を許してn個選び,それらを並べるパターンを列挙する問題"を考えています。
- combinationsにはpythonのitertoolsでいうところのrepeatのようなオプションがないため、combinationsの使用をする場合はn回直書きする必要がある。nはよく切り替える数値のため、直書きは避けたい。
- リンク先の最初の回答例、meshgridは3次までなのに対し、nは4以上を検討しているためmeshgridは不適。また、ndgridもcomibinationsと同様に、直書きする必要があるように見える。
repmatをした結果を引数として展開することができれば良さそうと考えているのですが、それを実現する方法を見つけることは出来ていません。
この問題に対する良い方法はございますでしょうか?ご教授いただければ幸いです。
댓글 수: 0
채택된 답변
Shunichi Kusano
2024년 11월 28일
n = 4; % 自由に変えてください。
in = repmat({[0 1]},1,n);
in{:} % これがコンマ区切りリストです。
T = combinations(in{:}) % combinations([0 1],[0 1],[0 1],[0 1])と同じ意味です。
結果を見て気付きましたが、これは2のn乗-1までの数を二進数に変換したときそのものなので下記でもイイのではないかと思います。
T2 = dec2bin(0:2^n-1)
추가 답변 (0개)
참고 항목
카테고리
Help Center 및 File Exchange에서 Matrix Indexing에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!