在Matlab中随机选取大量样本的子集

在Matlab中随机选取大量样本的子集,matlab,Matlab,我想从大量的n个样本中创建n个样本的子集,n您可以尝试使用single()将数据大小减半: randi给出均匀分布的数字 Ind = randi(N,[n 1]); Observation = data(Ind); 您还可以使用datasample Observation = datasample(data,n,'Replace',false)); Observation = data(randsample(N,n)); 正如@Shai所提到的,另一个选项是randsample Obse

我想从大量的n个样本中创建n个样本的子集,n您可以尝试使用single()将数据大小减半:


randi
给出均匀分布的数字

Ind = randi(N,[n 1]);
Observation = data(Ind); 
您还可以使用
datasample

Observation = datasample(data,n,'Replace',false));
Observation = data(randsample(N,n));
正如@Shai所提到的,另一个选项是
randsample

Observation = datasample(data,n,'Replace',false));
Observation = data(randsample(N,n));

如果
n
n
小得多,则a是有效的:使用生成可能重复的样本,检查是否存在重复(不太可能),如果存在,则重复:

N = 10000;
n = 100;
repeat = true;
while repeat
    sample = randi(N,1,n);
    repeat = any(sum(bsxfun(@eq, sample, sample.'))>1);
end

你试过
randsample
吗?我以前不知道,但它不起作用