Poisson point process in matlab

柔情痞子 提交于 2019-12-06 14:58:50

问题


I am new with poisson point process. I did one simluation (matlab) as below. My intensity lambda = 50;

clear all;
lambda=50;
 npoints = poissrnd(lambda);
  pproc = rand(npoints, 2);
  plot(pproc(:, 1), pproc(:, 2), '.');

Then I have plot,

However, the link

http://connor-johnson.com/2014/02/25/spatial-point-processes/

showed me that when intensity lamuda = 0.2, smaller than 1 , he got

The link also showed the code in Python.Please check it.

Here is my question, why intensity is smaller than 1, he still can plot something here? If I let my code's lamda = 0.2, there will be no value to plot. I think I miss something about Poisson point process? or it's a programming problem? I want to simulate this lambda = 0.2 in matlab.

Thank you so much for your help.

total lambda = 0.4. I want to have 100 unit. This means unit intensity = 0.4 * 100 = 40. thank you so much.

 la=0.4;
 lala=0.4*100;
  npoints = poissrnd(lala);

  pproc = rand(npoints, 2);

  plot(pproc(:, 1).*100, pproc(:, 2).*100, '.');


回答1:


I think your solution should be following. (Note : Two different methods of drawing PPP spatial distribution)

clear all;
clc;
close all;

lambda=50;

%Method 1
pproc  = poissrnd(lambda, 100, 2);
size(pproc)
plot(pproc(:, 1), pproc(:, 2), '.');
title('Poisson with poissrnd')

%Method 2
pproc2 = random('Poisson', lambda, 100, 2);
size(pproc2)
figure;
plot(pproc2(:, 1), pproc2(:, 2), '.');
title('Poisson with Random statement')



回答2:


total lambda = 0.4. I want to have 100 unit. This means unit intensity = 0.4 * 100 = 40. thank you so much.

 la=0.4;
 lala=0.4*100;
  npoints = poissrnd(lala);

  pproc = rand(npoints, 2);

  plot(pproc(:, 1).*100, pproc(:, 2).*100, '.');

Please check the figure in my question at the end.



来源:https://stackoverflow.com/questions/27936167/poisson-point-process-in-matlab

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!