Più di una volta ora ho bisogno di generare tutte le possibili coppie di due vettori in MATLAB, che faccio con i cicli for che occupano una fiera poche righe di codice cioèCome generare tutte le coppie da due vettori in MATLAB usando un codice vettoriale?
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
Genera ...
1 1
1 2
1 3
2 1
2 2
2 3
3 1
3 2
3 3
4 1
4 2
4 3
Ci deve essere un modo migliore per fare ciò che è più MATLAB?
n.b. nchoosek
non esegue le coppie invertite che è quello che mi serve (ad esempio 2 1
e 1 2
), non è possibile invertire e aggiungere l'output nchoosek
perché le coppie simmetriche verranno incluse due volte.
possibile duplicato di [Matlab - Genera tutte le possibili combinazioni degli elementi di alcuni vettori] (http://stackoverflow.com/questions/4165859/matlab-generate-all-possibile-combinazioni-degli-elementi-di-some-vettori) – Amro