在Matlab中随机选取大量样本的子集
我想从大量的n个样本中创建n个样本的子集,n您可以尝试使用single()将数据大小减半:在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
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
吗?我以前不知道,但它不起作用