24小时热门版块排行榜    

CyRhmU.jpeg
查看: 3855  |  回复: 6
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

husthc

木虫 (正式写手)

[求助] matlab中如何实现在一球面上均匀的随机取点已有1人参与

matlab中如何实现在一球面上均匀的随机取点。
原来我采取以下方法:
phi=rand(n,1);
theta=rand(n,1);

x=r.*sin(Theta).*cos(Phi);
y=r.*sin(Theta).*sin(Phi);
z=r.*cos(Theta);

这样好像不是关于球面均匀取点的;求高手指点
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

husthc

木虫 (正式写手)

引用回帖:
2楼: Originally posted by csgt0 at 2012-06-29 10:01:31
如果要均匀的话,只需要随机取一个点或两个点,其他点通过关系计算的吧。所有都随机取得肯定不是均匀的。

这里的均匀当然不是指绝对均匀了,是指随机的概率均匀
4楼2012-06-29 11:41:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 7 个回答

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
husthc: 金币+8, 谢谢参与 2012-08-29 22:03:23
如果要均匀的话,只需要随机取一个点或两个点,其他点通过关系计算的吧。所有都随机取得肯定不是均匀的。
showmethemoney
2楼2012-06-29 10:01:31
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

试试sphere函数,好像可以的
showmethemoney
3楼2012-06-29 10:24:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

引用回帖:
4楼: Originally posted by husthc at 2012-06-29 11:41:08
这里的均匀当然不是指绝对均匀了,是指随机的概率均匀...

那你可以先对x在[-1,1]随机,在对y在[-sqrt(1-x^2),sqrt(1-x^2)]上随机,然后就可以求出z了,这样应该都是均匀随机出来的吧
showmethemoney
5楼2012-06-29 11:47:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见