Info

此问题已关闭。 请重新打开它进行编辑或回答。

How I accept generated [x,y] samples that fall into a probability density function or an equivalent area?

1 次查看(过去 30 天)
I generate samples in 2-d space, i.e. x,y coordinates. I have a normal pdf and I want to keep/accept the samples that fall inside the pdf. Let as denote this area W. Is there a specific command for this? How can I implement it? I found in Matlab inpolygon command , but it works only for polygonal region and not on curves, such as pdf .

回答(1 个)

Image Analyst
Image Analyst 2017-10-14
I'm not sure you mean "fall inside the pdf" since, of course, all values generated must come from the PDF. I think you mean "fall inside the area", presumably one defined by some limits on x and y
% Get x and y somehow
if x < x1 || x > x2 || y < y1 || y > y2
% Coordinate is out of bounds. Skip this one.
continue;
end
% Else do something with it.
  2 个评论
DIMITRIS GEORGIADIS
DIMITRIS GEORGIADIS 2017-10-15
编辑:DIMITRIS GEORGIADIS 2017-10-15
My fault. Maybe I was not clear. I need a simple rejection sampling algorithm, such as the following:
1. K=200 %number of simulations
2. k=1 % first iteration
3. Generate a sample x (for k=1) from f(x) % prior pdf
4. Generate a sample p from the standard uniform distribution in [0,1].
5. if [x,p] ε (i.e. belong) W-space
a. Accept x
b. k=k+1
6. Stop if k=K, else go to 3.
Here is my .m file for the above. My question is HOW I express the if condition? The accepted samples must fall inside W-space (the shaded area).

此问题已关闭。

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by