![]() |
如何在8维球体上生成网络
使用Matlab,如何生成3 ^ 10个点的网络,这些点均匀分布(或分布)在8维单位球面上?
[B]回答:[/B] 来自维基百科[URL="http://en.wikipedia.org/wiki/N-sphere"]n-sphere[/URL] [INDENT]为了在(n鈭1)球(即n球的表面)上生成均匀分布的随机点,Marsaglia(1972)给出了以下算法。 生成法线偏差的n维向量(使用N(0,1)就足够了,尽管事实上,方差的选择是任意的)\ mathbf {x} =(x_1,x_2,\ ldots,x_n)。 现在计算该点的“半径”,r = \ sqrt {x_1 ^ 2 + x_2 ^ 2 + \ cdots + x_n ^ 2}。 向量\ frac {1} {r} \ mathbf {x}均匀分布在单位n球的表面上。 [/INDENT]一个可以实现此目的的matlab代码片段是: numdims = 8; numpts = 3^10; x = randn([numdims numpts]); lx = repmat(sqrt(sum(x.^2,1)), [numdims 1]); x = x./lx; %x(:,j) is the jth point on the circle) [url=https://stackoverflow.com/questions/3278424]更多&回答...[/url] |
所有时间均为北京时间。现在的时间是 01:00。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.