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

조회 수: 14 (최근 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 CenterFile Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!