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 ExchangeDeep Learning Toolbox についてさらに検索

製品

リリース

R2007b

Community Treasure Hunt

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

Start Hunting!