gpt4 book ai didi

matlab - 如何在 8 维球体上生成网络

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

如何使用 Matlab 生成均匀分布(或分布)在 8 维单位球面上的 3^10 个点的网络?

最佳答案

在 n-d 单位球体上获取点的一种简单方法是创建一个 n-d 立方体,切掉角,然后将剩余的半径归一化为 1。请注意,如果不进行切割,分布将不会均匀。

但是,由于超球体相对于包围盒的体积会随着维度的增加而减小,因此这并不是一种特别有效的方法。

更好的方法是生成一个 n-d 正态分布点(半径)数组,并将它们归一化为球体的半径 - n-d 正态分布是径向对称的,因此表面上的分布将是均匀的

%# set-up
nPoints = 3^10;
nDim = 8;

%# create normally distributed variables
points = randn(nPoints,nDim);

%# normalize by dividing by the norm (=square root of sum(points.^2,2) )
points = bsxfun(@rdivide,points,sqrt(sum(points.^2,2)));

关于matlab - 如何在 8 维球体上生成网络,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3278424/

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