Creating pairs of vector elements

11 views (last 30 days)
N S
N S on 26 Aug 2013
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.

Answers (2)

Azzi Abdelmalek
Azzi Abdelmalek on 26 Aug 2013
Edited: Azzi Abdelmalek on 26 Aug 2013
% 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 on 26 Aug 2013
a = (1:9)';
b = a;
c = a;
[ii,jj,k] = ndgrid(a,b,c);
out = [ii(:),jj(:),k(:)];

Categories

Find more on Linear Model Identification in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!