In MATLAB, I have a set of P
numbers. I would like to generate a random array of size N
from this set.
For the sake of example, let say I h
You should use datasample
,
y = datasample(data,k)
returns k
observations sampled uniformly at random, with replacement, from the data in data
.
a = [1,4];
datasample(a,5)
Depending on the usage, you might consider using,
datasample(unique(a),5)
If you don't have the Statistics Toolbox (which contains the datasample
function), you can use randi:
N = 5; %// desired number of samples
data = [1 4]; %// data values
sample = data(randi(numel(data),1,N));
And if you use a very old version of Matlab that doesn't have randi
, you can employ rand:
sample = data(ceil(numel(data)*rand(1,N)));