gpt4 book ai didi

java - 如何根据正态(高斯)分布对网格(矩阵)的单元格进行采样?

转载 作者:行者123 更新时间:2023-11-30 07:34:24 29 4
gpt4 key购买 nike

我需要根据 Java 中的正态分布对网格(MXN 矩阵)的单元格进行采样。

我知道the Apache Math library具有对一维(1D)值进行采样的函数,因此对于 vector 来说很好,但我找不到任何 2D 的替代方案。

我曾想过两次使用一维方法:一次用于行,另一次用于列。然而,(1)它并不完全合适,因为它将使用 Von Neumann distances而不是geometrical distance ,并且 (2) 这种方法无法避免重复(即不会采样)。

那么,如何根据以特定单元格(r,c)为中心的正态(高斯)分布对网格(矩阵)的单元格进行采样?

<小时/>

或者,如果采样不可能(或太复杂),我如何使用正态分布在以特定单元格为中心的网格中的各个单元格中分布概率( r,c)?例如,对于 3x3::

0.1 | 0.1 | 0.1
0.1 | 0.2 | 0.1
0.1 | 0.1 | 0.1

我不确定之前的值是否真的适合任何高斯分布,但更重要的是,对于任何矩阵,单元格的总和必须为 1。

从这里我可以迭代,并为之努力;或滚动并迭代相加。

最佳答案

即使在一维情况下,也不清楚如何将从高斯分布采样的值映射到 vector 索引;然而,如果您需要做的只是从 2D 高斯采样一个值,Apache commons 有 MultivariateNormalDistribution

协方差矩阵的对角线项是沿两个方向的高斯分布的方差。非对角线条目是两个维度之间的协方差。如果两个方向是独立的并且方差均为 1,则您的协方差矩阵将为:

double[][] covariance =
{{1d, 0d},
{0d, 1d}};

关于java - 如何根据正态(高斯)分布对网格(矩阵)的单元格进行采样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35611854/

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