MATLAB: Choose some random number from the given number matlab

a=[0.1,0.1,0.1,0.2,0.3];
from this i want to choose some random number
Note: answer may be like "a=0.1,0.2"

Best Answer

Ok, I assume that the example "a=[1 1 2 4 5 1 1 1]; than the answer should be b= 1 3 1" had a typo and that you want to randomly select a number of samples from a vector a. This is how I normally do it.
a=[0.1,0.1,0.1,0.2,0.3];
nSamples = 3;
tmp = rand(size(a));
[~,idx] = sort(tmp);
idx = idx(1:nSamples);
b = a(idx);
clear tmp;
This creates a vector of randomly generated numbers, from an uniform distribution and when sorted, the random numbers will be linearly increasing and the original indices will be uniformly distributed.
Related Question