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)));