フィルターのクリア

重複ありの順列のパターンを列挙した行列を作る方法

16 ビュー (過去 30 日間)
Akane Aoki
Akane Aoki 2021 年 4 月 6 日
コメント済み: Akane Aoki 2021 年 4 月 20 日
1,2,3,4の数字を使って作成した8桁の数字の全てのパターンを列挙した行列を作るにはどうしたら良いですか?
例えば、[[1 1 1 1 1 1 1 1];[1 1 1 1 1 1 1 2];[1 2 3 4 1 2 3 4];.....] のように列挙されて、パターンは全部で4^8通りで、4^8行8列の行列が出来上がると思います。

採用された回答

Tomohiko
Tomohiko 2021 年 4 月 7 日
1ベースの4進数を1から4^8-1まで並べるという考えで、次の方法はどうでしょうか?
double(dec2base(1:(4^8-1),4))-double('0')+1
  3 件のコメント
Akira Agata
Akira Agata 2021 年 4 月 8 日
若干泥臭いですが、ndgrid を使うという方法もあります。
[c1,c2,c3,c4,c5,c6,c7,c8] = ndgrid(1:4,1:4,1:4,1:4,1:4,1:4,1:4,1:4);
A = [c1(:),c2(:),c3(:),c4(:),c5(:),c6(:),c7(:),c8(:)];
Akane Aoki
Akane Aoki 2021 年 4 月 20 日
ありがとうございます!

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!