我必须在C ++环境中开发normpdf MATLAB函数。 但我遇到了问题......
MATLAB中的normpdf(X,u,sigma) 与normal_distribution gaussian(u,sigma)相似;
哪里是X值? 这意味着我希望高斯函数不是高斯随机的。 我如何使用高斯分布对输出值进行采样?
感谢。
答案 0 :(得分:0)
你可以轻松自己编写normpdf
inline double squared(double x)
{
return x*x;
}
double normpdf(double x, double u, double s) {
return (1.0/(s*sqrt(2.0*M_PI)))*exp(-0.5*squared(x-u)/squared(s));
}
更新
这个可能会快一点,少一个乘法
const double ONE_OVER_SQRT_2PI = 0.39894228040143267793994605993438;
double normpdf(double x, double u, double s) {
return (ONE_OVER_SQRT_2PI/s)*exp(-0.5*squared((x-u)/s));
}