Creating pairs of vector elements

I have 3 vectors, each containing 9 elements. I want to create all the possible pairs (729) of the vector elements in a random order. What would be an efficient way to do it?
Thanks a million! N.

Antworten (2)

Azzi Abdelmalek
Azzi Abdelmalek am 26 Aug. 2013
Bearbeitet: Azzi Abdelmalek am 26 Aug. 2013

0 Stimmen

% Example
a=randi(9,9,1);
b=randi(9,9,1);
c=randi(9,9,1);
%-----------------------------------
[ii2,jj2]=ndgrid(a,b);
[ii3,jj3]=ndgrid(1:numel(ii2),c);
v2=[a(ii2(:)) b(jj2(:))];
v3=[v2(ii3(:),:) c(jj3(:))];
n=size(v3,1);
v3=v3(randperm(n),:)
Andrei Bobrov
Andrei Bobrov am 26 Aug. 2013

0 Stimmen

a = (1:9)';
b = a;
c = a;
[ii,jj,k] = ndgrid(a,b,c);
out = [ii(:),jj(:),k(:)];

Kategorien

Gefragt:

N S
am 26 Aug. 2013

Community Treasure Hunt

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

Start Hunting!

Translated by