gpt4 book ai didi

matlab - 如何使用 MATLAB 在球体内生成随机点

转载 作者:太空宇宙 更新时间:2023-11-03 19:56:31 28 4
gpt4 key购买 nike

我尝试使用以下代码在原点使用以下命令在球体内生成随机点

no_of_spots = 3000
radius=20
rvals = (2)*rand(no_of_spots,1)-(1);
elevation = asin(rvals);
azimuth = 2*pi*rand(no_of_spots,1);
radii = rand(no_of_spots,1)*radius;
[point_x,point_y,point_z] = sph2cart(azimuth,elevation,radii);

我得到的结果是 sphere with random points

从图中可以看出,随机点集中在原点附近,即看起来像高斯分布。我需要均匀分布在球体内的随机点,或者需要将点的集中度从中心转移到另一个点。我该怎么做/谁能帮忙/提前致谢,马努

最佳答案

如果你调整你的 radii 线:

radii = rand(no_of_spots,1)*radius;

收件人:

radii = (rand(no_of_spots,1).^(1/3))*radius;

你应该得到一个看起来更统一的分布。

这就是 Knuth 在计算机编程艺术中所描述的内容。卷。 2 并被引用 here .

关于matlab - 如何使用 MATLAB 在球体内生成随机点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46821801/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com