在初始化粒子时,我需要为其添加一些高斯噪声。例如
particle.x(i) = rect(1)+mgd(1,1,0,10);
此处 rect(1)
给出位置,mgd 函数提供噪声
关于 mgd 函数的详细信息是:
- 函数
x=mgd(N,d,rmean,covariance)
- 生成多元高斯分布
- 用法
x=mgd(N,d,mu,sigmax)
- 此函数从 d 维生成
N
个样本 高斯分布
我的N
和d的值一直是1,如何在opencv c++中实现mgd
功能?
最佳答案
看看标准库 "random" , 它包括针对不同分布的方法,包括 normal distribution .
在变量不相关的情况下,可以对每个维度使用独立的一维随机数(参见KeillRandor的回答),否则是不正确的。对于实现,您可以查看 MATLAB 的代码,为此,在脚本编辑器中键入
mvnrnd
然后右键单击刚刚键入的命令并在上下文菜单中选择打开 mvrnd。您将看到 mvnrnd 函数的 MATLAB 代码。
关于c++ - 粒子滤波器中的多元高斯分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24158920/