matlab 如何在指定圆域中生成随机数比如指定圆域为 x^2+y^2<r如何仅仅在这个区域内生成均匀随机数?要保证足够均匀~尝试过以下两种方法:1)先生成方形区域随机数再截取:(主干)ran=rand

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/08 00:01:03
matlab 如何在指定圆域中生成随机数比如指定圆域为 x^2+y^2<r如何仅仅在这个区域内生成均匀随机数?要保证足够均匀~尝试过以下两种方法:1)先生成方形区域随机数再截取:(主干)ran=rand

matlab 如何在指定圆域中生成随机数比如指定圆域为 x^2+y^2<r如何仅仅在这个区域内生成均匀随机数?要保证足够均匀~尝试过以下两种方法:1)先生成方形区域随机数再截取:(主干)ran=rand
matlab 如何在指定圆域中生成随机数
比如指定圆域为 x^2+y^2<r
如何仅仅在这个区域内生成均匀随机数?要保证足够均匀~
尝试过以下两种方法:1)先生成方形区域随机数再截取:(主干)
ran=rand(1000);
ran2=(ran-0.5)*2*r;

for i=1:1000
    for j=1:1000
        if r^2>ran2(i)^2+ran2(j)^2
            plot(ran2(i),ran2(j),'r')
            hold on
        end
    end
end

2)生成圆域内任意圆上的随机点:
a1=2*pi*rand(1,1000);
r1=r*rand(1,1000);
x=sin(a1).*r1;
y=cos(a1).*r1;
a2=0:2*pi/100:2*pi;
plot(r*sin(a2),r*cos(a2),'-b',x,y,'or')


结果为以下两张图,因为算法本身缺陷,无论1)2)都不够均匀,有高手有更好的方法吗?/>



matlab 如何在指定圆域中生成随机数比如指定圆域为 x^2+y^2<r如何仅仅在这个区域内生成均匀随机数?要保证足够均匀~尝试过以下两种方法:1)先生成方形区域随机数再截取:(主干)ran=rand
%算法为:
%1)在指定圆的最小外切正方形内均匀布n个点
%2)删除圆外的m个点
%3)重复1、2步骤,每次重复1时的布置点数n为上一次删除点数m
%因为正方形的面积与圆面积之比为pi/4约为0.75
%循环第二次时删除的点数m就仅为0.0625*需要点数,收敛快.
n=1000;%总点数
r=5;%半径
x=2*r*rand(1,n)-r;%开始构造随机点
y=2*r*rand(1,n)-r;
index=find(x.^2+y.^2>r.^2);
len=length(index);
x(index)=[];
y(index)=[];
while len
xt=2*r*rand(1,len)-r;
yt=2*r*rand(1,len)-r;
index=find(xt.^2+yt.^2>r.^2);
len=length(index);
xt(index)=[];
yt(index)=[];
x=[x xt];
y=[y yt];
end
plot(x,y,'ro')
axis equal

matlab 如何在指定圆域中生成随机数比如指定圆域为 x^2+y^2<r如何仅仅在这个区域内生成均匀随机数?要保证足够均匀~尝试过以下两种方法:1)先生成方形区域随机数再截取:(主干)ran=rand 给出指定分布函数,如何用matlab生成符合该分布的随机数? 如何在matlab中生成负指数分布和均匀分布的随机数 如何在matlab中生成负指数分布和均匀分布的随机数 如何用matlab生成随机数函数 请问如何在c++里面生成服从指数分布和均匀分布的随机数?类似于matlab里的exprnd,unifrnd 如何在指定多边形中生成随机点,ArcGIS Matlab生成定区域内指定数目随机坐标点如何在100*100区域内生成随机分布的50个节点? 请问如何在matlab中利用两个[0,1]均匀分布生成一个均值为[0,0]协方差阵为[1,0.5;0.5,1]的正态分布随机数啊 vb中多次随机随机数 指定位置随机数出现的次数vb中多次随机随机数后 统计指定位置随机数出现次数 如 生成了十组随机数 每组中第一位数字出现的次数 在excel中如何在指定的数据范围中产生随机数,比如我要在指定的 1,7,5,8,9,11,15 ,中产生 3个随机在excel中如何在指定的数据范围中产生随机数,比如我要在指定的 1,7,5,8,9,11,15 ,中产生3个随机数,请 在excel中如何在指定的数据范围中产生随机数,比如我要在指定的 1,7,5,8,9,11,15 ,中产生 3个随机数,这该如何操作 求一随机数生成代码,可以生成指定位数的随机数,随机数里要有字母的大小写和数字. matlab如何在点上标数据? 如何在matlab中生成一个1,2,3,4..n的列向量 matlab如何在圆内随机画点 MATLAB 生成随机数怎样生成10个属于区间[3,+无穷)的随机数? 告诉下ps.如何在圆内写字,是圆内.晓得的人说下哈,感谢了{随机数e