combinationsで同じ配列を複数回引数に取る方法
7 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
以前の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 commentaires
Réponse acceptée
Shunichi Kusano
le 28 Nov 2024
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)
Plus de réponses (0)
Voir également
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!