matlab选择随机不重复n个样本
2019-07-31 本文已影响0人
吵吵人
function s = sampling(R, n)
% 选择抽样,R为记录集合,n为抽取的样本数
N = length(R);
t = 0; % 处理过的记录总数
m = 0; % 已选得的记录数
while m<n
U = rand;
if (N-t)*U < n-m %不是很懂
m = m + 1;
s(m) = R(t+1);
end
t = t + 1;
end
sampling函数返回选中的n个随机数
rname='Day1_Var5.xlsx';
wname='Corr_1000.xlsx';
N=1000;
%读数据,抽取样本
A = xlsread(rname);
nsam=sampling(1:length(A),N);
sam=A(nsam,:);
%写数据,但是没有表头
xlswrite(wname,sam);
通过返回的下标筛选数据