如何从Matlab中的数据集中选择随机样本

rob*_*ess 23 matlab octave random-sample

可能重复:
如何从MATLAB中的N个点中随机选择k个点?

假设我有一个包含10,000行数据的数据集.创建包含1,000个随机选择行的子集的最佳方法是什么?

H.M*_*ter 33

您可以使用randperm执行此任务:

无需更换的采样:

nRows = 10000; % number of rows
nSample = 1000; % number of samples

rndIDX = randperm(nRows); 

newSample = data(rndIDX(1:nSample), :); 
Run Code Online (Sandbox Code Playgroud)

更换取样:

nRows = 10000; % number of rows
nSample = 1000; % number of samples

rndIDX = randi(nRows, nSample, 1); 

newSample = data(rndIDX, :); 
Run Code Online (Sandbox Code Playgroud)


Jus*_*tin 6

使用randperm结合的行数.如果x是你的矩阵:

nrows = size(x,1);
nrand = 1000; % Choose 1000 rows
assert(nrand<=nrows, 'You cannot choose more rows than exist in the matrix');
rand_rows = randperm(nrows, nrand);
xx = x(rand_rows,:);  % Select the random rows from x
Run Code Online (Sandbox Code Playgroud)