Как генерировать все пары из двух векторов в MATLAB с использованием векторизанного кода?

Больше, чем один раз, теперь я должен был генерировать все возможные пары двух векторов в Matlab, в котором я делаю для циклов, которые занимают честные линии кода IE

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

...

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

Там должен быть лучший способ сделать это, что больше MatLab'eSque?

NB NCHOOSEK не делает изменения в обратных парах, которые мне нужны (т. Е. 2 1 , а также 1 ), я не могу просто отменить и добавить NCHOOSEK вывод, потому что симметричные пары будут включены дважды.

46
задан Brendan 16 September 2011 в 15:26
поделиться