フィルターのクリア

How to choose 2 people randomly among 12 ?

1 回表示 (過去 30 日間)
Negar
Negar 2013 年 10 月 24 日
コメント済み: Negar 2013 年 10 月 24 日
Hi all,
Here is my question: I have a group of 12 peoples, Now I want to make a mini group by picking 2 of them by random. I've somehow done that, but the problem is that I want the result to be shown as a 2x1 vector, and not 2x2 matrix .
Here is my code:
Group={'ae','bk','cn','es','fh','hv','mh','ol','sd','sg','ss','ts'}; m=randi([1 12],2,1) % A 2x1 array of random numbers between 1 and 12 Minigroup=[Group{m(1)} ; Group{m(2)}]
As you see, size of the Minigroup is 2x2 . Any suggestions?
Thank you

採用された回答

Wayne King
Wayne King 2013 年 10 月 24 日
編集済み: Wayne King 2013 年 10 月 24 日
Group={'ae','bk','cn','es','fh','hv','mh','ol','sd','sg','ss','ts'};
idx = randperm(12,2);
Group{idx}
I think you want to use randperm() instead of randi(), because randi() can give you the same index twice and presumably you want two different people.
  1 件のコメント
Negar
Negar 2013 年 10 月 24 日
編集済み: Negar 2013 年 10 月 24 日
Thank you for the randperm, you are absolutely right ! :)
And another thing, how can I remove these two persons from my category and make a new group excluding them?

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

その他の回答 (1 件)

Wayne King
Wayne King 2013 年 10 月 24 日
Group={'ae','bk','cn','es','fh','hv','mh','ol','sd','sg','ss','ts'};
idx = randperm(12,2);
ind = setdiff(1:length(Group),idx);
GroupNew = Group(ind);
  1 件のコメント
Negar
Negar 2013 年 10 月 24 日
Thank you again ! :)

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

カテゴリ

Help Center および File ExchangeCreating and Concatenating Matrices についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by