Selecting unique pairs from a vector

26 Ansichten (letzte 30 Tage)
jlt199
jlt199 am 9 Sep. 2016
Kommentiert: jlt199 am 9 Sep. 2016
Afternoon all,
Suppose I have a vector
imax = [1;2;3;4;5;6];
I would like to find every set of pairs available in that matrix, so that
pairs = [1,2; 1,3; 1,4; 1,5; 1,6; 2,3; 2,4; 2,5; 2,6; 3,4; 3,5; 3,6; 4,5; 4,6; 5,6];
Where if we have the pair 1,2 we don't also have the pair 2,1. I have got this far, but it's obviously not working. Can anyone help me over the last little hurdle?
% Find every pairwise combination of indexes
[p,q] = meshgrid(imax, imax);
pairs = [p(:) q(:)];
pairs(pairs(:,1)==pairs(:,2),:) = [];
Many thanks

Akzeptierte Antwort

Azzi Abdelmalek
Azzi Abdelmalek am 9 Sep. 2016
Bearbeitet: Azzi Abdelmalek am 9 Sep. 2016
imax = [1;2;3;4;5;6]
out=nchoosek(imax,2)
  1 Kommentar
jlt199
jlt199 am 9 Sep. 2016
That's a lot simpler than my answer:
[p,q] = meshgrid(imax, imax);
pairs = [p(:) q(:)];
pairs(pairs(:,1)>=pairs(:,2),:) = [];
Thank you very much

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Mehr zu Matrix Indexing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by