Random selection of n values from a vector - which function should I use?

169 views (last 30 days)
I have a vector with twenty unique values from 1 to 20. I would like to select randomly two values from my vector. Which option should I use? Is there some difference between the functions attached below?
randperm
A = [1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20];
y = A(randperm(20,2));
randsample
y = randsample(20,2);
datasample
y = datasample(A,2);

Accepted Answer

Walter Roberson
Walter Roberson on 29 Jan 2016
randsample() requires the Stats toolbox, and has more options such as selection with replacement.
Since your source is [1:20], you can simplify your randperm version to just
y = randperm(20,2);
but if it did not happen to be consecutive integers you could use the form you did,
A = 1:20;
y = A(randperm(numel(A),2));

More Answers (0)

Community Treasure Hunt

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

Start Hunting!

Translated by