Selecting unique pairs from a vector

조회 수: 19(최근 30일)
jlt199
jlt199 2016년 9월 9일
댓글: jlt199 2016년 9월 9일
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

채택된 답변

Azzi Abdelmalek
Azzi Abdelmalek 2016년 9월 9일
편집: Azzi Abdelmalek 2016년 9월 9일
imax = [1;2;3;4;5;6]
out=nchoosek(imax,2)
  댓글 수: 1
jlt199
jlt199 2016년 9월 9일
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

댓글을 달려면 로그인하십시오.

추가 답변(0개)

태그

제품

Community Treasure Hunt

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

Start Hunting!

Translated by