Selecting unique pairs from a vector

23 次查看(过去 30 天)
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 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

标签

产品

Community Treasure Hunt

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

Start Hunting!

Translated by