How to make a general code for a set of pairs between 2 men and 3 women

1 回表示 (過去 30 日間)
Jong-Hwan Kim
Jong-Hwan Kim 2013 年 7 月 28 日
Hi, all
I just want to know how to make a code for a set of pairs between 2 men and 3 women. I used meshgrid function to generate pairs but I cannot make possible "a set of pairs". can you help me please? Thanks
An example of a set of pairs :
Given, Men = {M1, M2}; Women = {W1, W2, W3}
a set of pairs =
(M1, W1), (M2,W2)
(M1, W1), (M2,W3)
(M1, W2), (M2,W1)
(M1, W2), (M2,W3)
(M1, W3), (M2,W1)
(M1, W3), (M2,W2)

採用された回答

Andrei Bobrov
Andrei Bobrov 2013 年 7 月 28 日
編集済み: Andrei Bobrov 2013 年 7 月 29 日
M = {'M1' 'M2'}
W = {'W1' 'W2' 'W3'}
w = perms(1:numel(W));
w = w(:,1:numel(M));
s = size(w);
out = mat2cell(reshape([M(ones(s(1),1)*(1:2));W(w)],s(1),[]),...
ones(s(1),1),s(2)*ones(1,s(2));
ADD
M = 100 + (1:4); % males
W = 50 + (1:3); % women
[s,ii] = sort(cellfun('length',{M,W}));
jj = perms(1:s(2));
p1 = d{ii(2)}(jj(:,1:s(1)));
p2 = ones(size(p1,1),1)*d{ii(1)};
out = reshape([p2;p1],[],s(1)*2);
  5 件のコメント
Jong-Hwan Kim
Jong-Hwan Kim 2013 年 7 月 28 日
Just my preference :) BTW, when I increase number of women or men, your code produce wrong results. Can you check that with 4 Men and 3 Women?
Andrei Bobrov
Andrei Bobrov 2013 年 7 月 29 日
ADD part in this answer

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeNumeric Types についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by