Generate numbers randomly from a set?

前端 未结 2 1660
执笔经年
执笔经年 2020-12-12 00:40

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

相关标签:
2条回答
  • 2020-12-12 01:18

    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)
    
    0 讨论(0)
  • 2020-12-12 01:29

    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)));
    
    0 讨论(0)
提交回复
热议问题