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

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

 Risposta accettata

MathWorks Support Team
MathWorks Support Team il 13 Ott 2021
Modificato: MathWorks Support Team il 17 Nov 2021

0 voti

全ての組み合わせを取得する方法として、以下の方法が考えられます。
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においてフリーで公開されているファイルの内容に関しましては、直接プログラム作成者の方にお問い合わせください。

Più risposte (0)

Categorie

Scopri di più su Deep Learning Toolbox in Centro assistenza e File Exchange

Prodotti

Release

R2007b

Community Treasure Hunt

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

Start Hunting!