Selecting unique pairs from a vector

23 visualizaciones (últimos 30 días)
jlt199
jlt199 el 9 de Sept. de 2016
Comentada: jlt199 el 9 de Sept. de 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

Respuesta aceptada

Azzi Abdelmalek
Azzi Abdelmalek el 9 de Sept. de 2016
Editada: Azzi Abdelmalek el 9 de Sept. de 2016
imax = [1;2;3;4;5;6]
out=nchoosek(imax,2)
  1 comentario
jlt199
jlt199 el 9 de Sept. de 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

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Matrix Indexing en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by