MATLAB で入力された複数組の​ベクトルの値から、全​ての組み合わせを取得​するにはどうすればよ​いですか?

複数組のベクトルの値から、全ての組み合わせを取得する方法を教えてください。
例えば、以下のような 2 組のベクトル a, b があるときは、C のような行列を取得したいです。
(入力ベクトル)
a = 1:3; b = 4:5
(出力させたい結果)
C = [1 4;...
1 5; ...
2 4; ...
2 5; ...
3 4; ...
3 5];

 채택된 답변

MathWorks Support Team
MathWorks Support Team 2021년 10월 13일
편집: MathWorks Support Team 2021년 11월 17일

0 개 추천

全ての組み合わせを取得する方法として、以下の方法が考えられます。
1. 組み合わせが 2 組の場合
質問文にあるように、a,b の 2 組から全ての組み合わせを求める場合には、以下のように meshgrid 関数を使用することができます。
2. 組み合わせが 2 組以上の場合
Neural Network Toolbox の COMBVEC 関数を使用することが可能です。
>> a = 1:3;
>> b = 4:5;
>> c = 6:7;
>> C = combvec(a,b,c)
C =
1 2 3 1 2 3 1 2 3 1 2 3
4 4 4 5 5 5 4 4 4 5 5 5
6 6 6 6 6 6 7 7 7 7 7 7
なお、ユーザコミュニティである MATLAB Central には、関連プログラムが公開されています。
・MATLAB Central: allcomb(varargin)
ただし、MATLAB Centralにおいてフリーで公開されているファイルの内容に関しましては、直接プログラム作成者の方にお問い合わせください。

추가 답변 (0개)

카테고리

도움말 센터File Exchange에서 Deep Learning Toolbox에 대해 자세히 알아보기

제품

릴리스

R2007b

Community Treasure Hunt

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

Start Hunting!