⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 getrnd.bak

📁 原创:随机抽样。从一系列的总体中抽取出指定数量的不重复样本点。
💻 BAK
字号:
%作者: Humg. 2008.11.12
%说明:使用迭代的方法从总体中抽取不重复的样本

function V = getrnd(n, M)
%从矩阵M中随机抽取出不重复的n个元素
%返回1×n的行向量V

if ~isscalar(n)
    error('n 应该是一个标量!');
end

[nrow, ncol] = size(M);
nLength = nrow * ncol;
if n > nLength
   error('n 应该小于 M的总长度!'); 
elseif n == nLength
    V = M;
    return;
end

NIndex = unique(unidrnd(nLength, 1, n));
V = M(NIndex);
psize = size(V, 1) * size(V, 2);
V = reshape(V, 1, psize);
if psize < n
    M(NIndex) = [];
    tmpV = getrnd(n - psize, M);
    V = [V, tmpV];
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -