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

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일

0 개 추천

1ベースの4進数を1から4^8-1まで並べるという考えで、次の方法はどうでしょうか?
double(dec2base(1:(4^8-1),4))-double('0')+1

댓글 수: 3

Akane Aoki
Akane Aoki 2021년 4월 7일
なるほど!
ありがとうございます!!!
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개)

카테고리

도움말 센터File Exchange에서 Creating and Concatenating Matrices에 대해 자세히 알아보기

질문:

2021년 4월 6일

댓글:

2021년 4월 20일

Community Treasure Hunt

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

Start Hunting!