?? wtrandperm.m
字號:
function idx = wtrandperm(w,nin)
%WTRANDPERM Weighted random permutation.
% idx = wtrandperm(w,n)
% w = p-element vector of weights
% n = length of output value (faster to use n if only first n elements
% of idx are needed and n < length of w)
% = length of w, default
% idx = n-element permutation vector, where the probability that
% idx(1) == i is w(i)/sum(w)
%
% See also RANDPERM and WTROUSELECT
% Copyright (c) 1994-2006 by Michael G. Kay
% Matlog Version 9 13-Jan-2006 (http://www.ie.ncsu.edu/kay/matlog)
% Input Error Checking ****************************************************
error(nargchk(1,2,nargin));
if nargin < 2 || isempty(nin), nin = length(w(:)); end
if min(size(w)) ~= 1
error('"w" must be a vector.')
end
% End (Input Error Checking) **********************************************
idxw = 1:length(w);
idxw0 = find(is0(w(:)')); % Remove 0 elements of w and put at end of idx
idxw(idxw0) = [];
n = min(nin,length(w(:)) - length(idxw0));
idx = zeros(1,n);
for i = 1:n
idxi = wtrouselect(w(idxw));
idx(i) = idxw(idxi);
idxw(idxi) = [];
end
idx = [idx idxw0];
idx = idx(1:nin);
if size(w,2) == 1, idx = idx'; end
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -