实施经验cdf c ++

时间:2015-04-28 14:04:45

标签: c++ qt-creator cdf

我想根据接收的N个样本确定的间隔在C ++中定义经验cdf,我应该保存2个向量(T和Y)! 我制作了这段代码,但它不起作用:

double cum_dist_funct::real_cdf_function(vec X,double x,int N,int Ndft,vec &T, vec &Z)
{
    Z.set_size(X.length());
    Z.zeros();
    vec V;
    V.set_size(N);
    V.zeros();
    double f0=0;
    T.set_size(X.length());
    T.zeros();
    T=X;
    for (int i=0; i<Ndft;i++)
    {
        V=X.get(i*N,(i+1)*N-1);
        for(int j=0;j<N;j++)
        {
            if(x<V[0]) f0=0;
            else if (V[j]<=x && x<V[j+1]) f0=j/N;
            else if (x>=V[N-1])      f0=1;
            Z[i*N+j]=f0;
        }
    }
    return f0;
}

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

  1. 目前尚不清楚为什么需要NNdftX.length()。 Aren的一个值是不够的?

  2. 如某人提到的那样,在整数除法j/N中你得到了零。请将其设为double(j)/double(N)