Creating groups of 2 people from a cell array of names

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

采纳的回答

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

更多回答(1 个)

Bhaskar R
Bhaskar R 2020-3-11
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 个评论
Areesh Adil
Areesh Adil 2020-3-11
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 2020-3-11
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

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by