在初始化粒子时,我需要向其中添加一些高斯噪声。例如
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)
N
样本高斯分布
我的
N
和d的值始终为1,如何在opencv c++中实现mgd
函数? 最佳答案
看一下标准库"random",它包括用于不同发行版的方法,包括normal distribution。
如果变量不相关,则可以为每个维使用独立的一维随机数(请参见KeillRandor的答案),否则不正确。对于实现,您可以查看MATLAB的代码,为此,请在脚本编辑器中键入
然后右键单击刚刚键入的命令,然后在上下文菜单中选择打开mvrnd。您将看到mvnrnd函数的MATLAB代码。
关于c++ - 粒子滤波中的多元高斯分布,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24158920/