選択肢から重複を許して並べる順列のパターンを列挙した行列を作る方法
23 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Yuki Koyama
am 10 Mai 2020
Kommentiert: Akira Agata
am 24 Jun. 2024
たとえば,[0 1]から重複を許して3つ選び,それらを並べるパターンは
[0 0 0],[0 0 1],[0 1 1],...のように列挙できますが,
[[0 0 0];[0 0 1];[0 1 1];...]
のような行列として作りたい場合,for文を用いずに作る方法はありますか?
0 Kommentare
Akzeptierte Antwort
Akira Agata
am 10 Mai 2020
meshgrid や ndgrid 関数を利用する方法では如何でしょうか?
たとえば [0 1] から重複を許して3つ選ぶという例ですと、以下のようになります。
[x1,x2,x3] = meshgrid([0 1],[0 1],[0 1]);
A = [x1(:),x2(:),x3(:)];
>> A
A =
0 0 0
0 1 0
1 0 0
1 1 0
0 0 1
0 1 1
1 0 1
1 1 1
4 Kommentare
Akira Agata
am 24 Jun. 2024
ご参考までに。。。
T = combinations([0 1], [0 1], [0 1]);
A = table2array(T) % A = T{:,:} でも可
Weitere Antworten (0)
Siehe auch
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!