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);  

通过返回的下标筛选数据

上一篇下一篇

猜你喜欢

热点阅读