24小时热门版块排行榜    

查看: 695  |  回复: 5

whuliuting

金虫 (正式写手)

[求助] matlab编程

在matlab编程时,遇到一个棘手问题:在一个n维空间中,以x(一个非零已知点)为球心,r为半径的球域内任意找一个点,请问,如何matlab编程?请高手帮忙!
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

【答案】应助回帖


nono2009(金币+1): 鼓励应助 2011-08-23 09:37:03
whuliuting(金币+10): 谢谢 2011-08-23 15:43:34
whuliuting(金币+5): 2011-08-26 13:32:16
假设你会用 随机数 产生函数,不会用就help!
L=r
for i=1:n
   在[-L,L]上产生一个随机数l
   X=x+l
  L=sqrt(L^2-l^2)
end
最后得到的数组X满足条件,
随机数产生函数要小心用哦,不然每次产生的点一样哦
2楼2011-08-22 15:45:40
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

X=x+l
更正为
X=x+l
3楼2011-08-22 15:48:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

pengyehui

木虫 (正式写手)

怎么中括号不能显示
X\[i\]=x\[i\]+l
4楼2011-08-22 15:49:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

gemz10186

至尊木虫 (知名作家)

建议使用球面坐标公式。设半径为r,使用r减去一个随机数来调整球面,你要找的点就在随机球面上。
在小木虫顶帖是中华民族的美德
5楼2011-08-22 16:04:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

【答案】应助回帖


nono2009(金币+1): 鼓励应助 2011-08-23 09:36:51
whuliuting(金币+40): 如果调试好了,再给您多多金币,非常感谢! 2011-08-23 15:52:18
whuliuting(金币+45): 2011-08-26 13:32:27
假定你的长度是2范数定义的吧,下面这个应该够用了。

y = x + orth(-1+2*rand(size(x)))*r*rand;

玩Matlab,能不用循环结构就尽量别用,效率问题。
另外,如果要保证随机的话可以用系统时间作为随机种子,比如
RandStream.setDefaultStream ...
     (RandStream('mt19937ar','seed',sum(100*clock)));

同理可以给定种子以得到实验的可重复性。
6楼2011-08-23 01:39:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 whuliuting 的主题更新
信息提示
请填处理意见