hi, i have set of numbers as following :

Z=[1,5,7,4,3,6,77,88,34,73,58,97,23,55,30,49,86,76,64,64,54,54,65,76,76,62,83,59,62,57,48]; How to choose 10 random numbers from these numbers??

Answers (1)

Z(randperm(length(Z),10))

5 Comments

Jan
Jan on 12 Jul 2017
Edited: Jan on 12 Jul 2017
Or if repetitions are wanted:
Z(randi([1, length(Z)], 1, 10))
No . I want to randomly select from the previous numbers and not from the length of the Z array? when apply this code, show the following
You didn't use the code correctly. You don't assign it to Z, you index into Z.
Breaking it up into steps:
random_index = randperm(length(Z));
Z(random_index(1:10))
That is, you start by taking a random permutation of the 31 possible indices into Z. Then you take 10 of those, so you get 10 unique indices into Z. Then you index Z at those locations to have chosen 10 random elements without replacement.
The code
Z(randperm(length(Z),10))
does this in one step.
@mohammed: You do not need:
Z = (randperm(length(Z), 10));
but:
SelectedZ = Z(randperm(length(Z), 10));

This question is closed.

Tags

Asked:

on 12 Jul 2017

Closed:

on 20 Aug 2021

Community Treasure Hunt

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

Start Hunting!