Comment générer toutes les paires de deux vecteurs dans MATLAB à l'aide de vectorisées code?

Plus d'une fois maintenant, j'ai besoin de générer de toutes les paires possibles de deux vecteurs dans MATLAB ce que je fais avec des boucles qui prennent juste quelques lignes de code, c'est à dire

vec1 = 1:4;
vec2 = 1:3;
i = 0;
pairs = zeros([4*3 2]);
for val1 = vec1
    for val2 = vec2
         i = i + 1;
         pairs(i,1) = val1;
         pairs(i,2) = val2;
    end
end

Génère ...

1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
4 1 
4 2
4 3

Il doit y avoir une meilleure façon de faire ce qui est plus MATLAB'esque?

n.b. nchoosek ne fait pas de paires inversées ce dont j'ai besoin (c'est à dire 2 1 ainsi que 1 2), je ne peux pas juste l'inverse et ajouter le nchoosek sortie parce que le symétrique paires seront inclus deux fois.

InformationsquelleAutor Brendan | 2011-09-16