MATLAB Answers

Creating groups of 2 people from a cell array of names

3 views (last 30 days)
Areesh Adil
Areesh Adil on 11 Mar 2020
Commented: Bhaskar R on 11 Mar 2020
If I have a n x 1 cell array of names and want to create random 2-person groups out of the names without repeats so that I have a (n/2) x 2 cell array, how would I go about doing so? Just an idea on how to start or a hint would also be helpful.

  0 Comments

Sign in to comment.

Accepted Answer

the cyclist
the cyclist on 11 Mar 2020
If C is your cell array, then
reshape(C(randperm(n)),n/2,2)

  0 Comments

Sign in to comment.

More Answers (1)

Bhaskar R
Bhaskar R on 11 Mar 2020
n = 26;
x = cellstr(char([65:65+n-1]')); % your cell data assumed
rand_nums = reshape(randsample(n,n), n/2, 2); % random numbers
rand_cell = x(rand_nums);

  2 Comments

Areesh Adil
Areesh Adil on 11 Mar 2020
Thank you. Could you explain what you did? I would like to learn what's happening rather than copying your code. But this is still super helpful nonetheless so thanks.
Bhaskar R
Bhaskar R on 11 Mar 2020
i created a dummy cell data x which contains character data(A to Z characters each character is a cell). Then created random samples(unique random values) and reshaped as 2 pairs as you require there are random locations to extract data from x

Sign in to comment.