24小时热门版块排行榜    

查看: 1274  |  回复: 8
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

xmcrobbie

银虫 (小有名气)

[求助] 有段程序,就5,6行,我看了N天了,请教高手

function Y = sampleWithR(weights,K)
%Y = sampleWithR(weights,K)
%Generates K samples from the discrete distribution specified by weights
%O(K)

%Need to handle border effects
cdf = cumsum(weights);
Y = histc(rand(K,1)*cdf(end),[0; cdf]);
Y = [Y(1:end-2); Y(end-1)+Y(end)];


我不知道这个函数起什么作用啊。。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coolslj

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
xmcrobbie: 金币+2 2013-11-04 15:32:52
xmcrobbie: 金币+3 2013-11-04 15:33:37
Generates K samples from the discrete distribution specified by weights
根据离散分布进行采样,该分布用样本权重表示

rand(K,1)*cdf(end)的目的是:将产生的0-1之间的随机数,放缩到上述离散分布(因为权重weights的总和可能不等于1)。不妨假设rand(K,1)返回1,就容易理解它的含义了。

[0; cdf] 的含义与cumsum的具体实现有关。
5楼2013-10-21 08:20:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 9 个回答

haier20022

新虫 (正式写手)

【答案】应助回帖

感谢参与,应助指数 +1
是matlab程序吧?
2楼2013-10-20 13:33:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

function Y = sampleWithR(weights,K)
% 依权值重采样;
cdf = cumsum(weights);
% 权值累加
Y = histc(rand(K,1)*cdf(end),[0; cdf]);
% 统计直方图
Y = [Y(1:end-2); Y(end-1)+Y(end)];
% 直方图最末一bin修正
3楼2013-10-20 14:40:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xmcrobbie

银虫 (小有名气)

引用回帖:
3楼: Originally posted by feixiaolin at 2013-10-20 14:40:26
function Y = sampleWithR(weights,K)
% 依权值重采样;
cdf = cumsum(weights);
% 权值累加
Y = histc(rand(K,1)*cdf(end),);
% 统计直方图
Y = ;
% 直方图最末一bin修正...

Y = histc(rand(K,1)*cdf(end),[0; cdf]);  这行不理解啊。rand(K,1)是随机产生K个0到1的数吧。[0; cdf] 应该是在在cdf2前加个0吧。

应该是看看产生的这K个数,落在统计直方图中各个bin的个数吧。。。

这么理解对吗?
4楼2013-10-20 16:30:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见