Matlab拒绝采样点未显示

Matlab拒绝采样点未显示,matlab,plot,Matlab,Plot,我使用以下代码进行Pi近似,使用拒绝采样方法 % DISPLAY A CIRCLE INSCRIBED IN A SQUARE figure; a = 0:.01:2*pi; x = cos(a); y = sin(a); hold on plot(x,y,'k','Linewidth',2) t = text(0.5, 0.05,'r'); l = line([0 1],[0 0],'Linewidth',2); axis equal box on xlim([-1 1]) ylim([-

我使用以下代码进行Pi近似,使用拒绝采样方法

% DISPLAY A CIRCLE INSCRIBED IN A SQUARE

figure;
a = 0:.01:2*pi;
x = cos(a); y = sin(a);
hold on
plot(x,y,'k','Linewidth',2)

t = text(0.5, 0.05,'r');
l = line([0 1],[0 0],'Linewidth',2);
axis equal
box on
xlim([-1 1])
ylim([-1 1])
title('Unit Circle Inscribed in a Square')

pause;
rand('seed',12345)
randn('seed',12345)
delete(l); delete(t);

% DRAW SAMPLES FROM PROPOSAL DISTRIBUTION
samples = 2*rand(2,100000) - 1;

% REJECTION
reject = sum(samples.^2) > 1;

% DISPLAY REJECTION CRITERION
scatter(samples(1,~reject),samples(2,~reject),'b.')
scatter(samples(1,reject),samples(2,reject),'rx')
hold off
xlim([-1 1])
ylim([-1 1])
预期结果应该是红方块内的蓝色圆圈。当我运行代码时,会显示用于构建正方形的红色点,但不会显示蓝色点。 预期结果应与此处的图片相同

但我得到了以下结果:


有人知道我能做些什么来可视化蓝点吗?提前感谢。

分散功能可能适用于如此大量的积分。请尝试以下方法:

t = 0:.01:2*pi;
x = cos(t); y = sin(t);

samples = 2*rand(2,100000) - 1;
reject = sum(samples.^2) > 1;

props = {'LineStyle','none', 'Marker','.', 'MarkerSize',1};
line(x, y, 'Color','k', 'LineWidth',2)
line(samples(1,~reject), samples(2,~reject), props{:}, 'Color','b')
line(samples(1,reject), samples(2,reject), props{:}, 'Color','r')
axis equal; axis([-1 1 -1 1])
box on

当我运行你的代码时,我得到一个红色正方形中的蓝色圆圈。不知道是什么问题。我只是将您的代码复制粘贴到一个文件中并运行它(只是我在第1行使用了
clc;全部关闭;全部清除;
。奇怪..我得到的结果是附加到我的问题上的图像。@Steffi:该图像看起来像gnuplot而不是MATLAB:)我正在使用GUI Octave运行.m文件,这很奇怪,因为我还尝试使用少量的点,结果是相同的-只显示红色点。。。但它按照您的建议运行,谢谢:-)