📄 getrnd.m
字号:
%作者: 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 + -