标题:java 编写的计算Pearson相关系数的程序出现了NaN值,要怎样处理呢?求大神帮 ...
只看楼主
Graceli1
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-4-1
 问题点数:0 回复次数:0 
java 编写的计算Pearson相关系数的程序出现了NaN值,要怎样处理呢?求大神帮忙
public static double Pearson1(double sa[][]){
        
        int row=sa.length;                            //sa[][]常为10列
        int col = sa[0].length;
        double av[] = new double [col];
        double wei_pearson[]=new double[col];
        
        //求每个列向量之间的平均值
        for(int j=0;j<col;j++){
            double avj = 0;             //存放每个向量的各元素的平均值
            double sumrate = 0;         //存放每个向量的各元素的和
        
            for(int i=0;i<row;i++){
                sumrate += sa[i][j];
            }
            avj = sumrate/row;
            av[j] = avj;
        }
        
        //System.out.println("pearson:");   
        double psum=0;                            //存放所有相关系数的平均数作为该列最终的相关系数
        for(int i=0;i<col;i++){
             double sum1=0;   
             double sum2=0;   
             double sum3=0;   
             double sum33=0;   
             double sumji=0;   
             for(int j=0;j<row;j++){   
                 double aimcha;   
                 double usercha;
                 aimcha=sa[j][0]-av[0];
                 usercha=sa[j][i]-av[i];
                 sumji+=aimcha*usercha;
                 sum1+=aimcha*aimcha;   
                 sum2+=usercha*usercha;
             }
             sum33=(double)(sum1*sum2);   
             sum3=Math.sqrt(sum33);
             double wei=sumji/sum3;   
             wei_pearson[i]=wei;   
           //  System.out.println("第"+(i+1)+": "+wei_pearson[i]);                          //分别打印目的列向量与窗口内其他向量的相关系数         
             psum = psum + wei_pearson[i];
        }
        psum = psum/col;
        //System.out.println(psum);   
        return psum;
    }
以上是计算相关系数的程序,简单测试时不会出现错误,但是在实验应用中会出现好多NaN值,这该如何处理呢??急求大神帮忙,谢谢!!!
搜索更多相关主题的帖子: java 平均值 double public 
2016-04-01 12:09



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-463155-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015929 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved