为什么元素没有插入到数组中?

时间:2014-12-04 13:49:31

标签: java arrays

这是我正在进行的一个大项目的一部分。

这里的问题是在第一个for循环的每个循环中的varlist我插入一个我计算的数字,但是后来当我想要创建这个数组的新排序版本时,我得到了这个错误: / p>

 " Type mismatch: cannot convert from void to float[] " 

我看不出为什么会出现这个错误,可能是因为我将一个浮点数除以int?

    public static float applyVarianceFilterOnDataset(
        GeneExpressionDataset geneExpressionDataset, int numberOfGenesToKeep) {

    int rows = geneExpressionDataset.genesNumber;
    int cols = geneExpressionDataset.samplesNumber;
    float[] varlist = new float[rows];

    for (int i = 0; i < rows; i++) {
        float var = 0;
        for (int j = 0; j < cols; j++) {
            float mean = calcMean(geneExpressionDataset.dataMatrix[i], cols);
            var = (float) (Math.pow(
                    (geneExpressionDataset.dataMatrix[i][j] - mean), 2) + var);

        }
        varlist[i] = (var / cols);

    }

    float[] sortedarray = new float[rows];
    sortedarray = Arrays.sort(varlist);
    float thenum = sortedarray[rows-numberOfGenesToKeep-1];



    }

    geneExpressionDataset.genesNumber = numberOfGenesToKeep;
    return thenum;
}

public static float calcMean(float[] ary, int num) {
    float sum = 0;
    for (float i : ary) {
        sum += i;
    }
    return (sum / num);
}

1 个答案:

答案 0 :(得分:2)

Arrays.sort(varlist)排序数组。所以你传递它的数组,在方法退出后,你的数组就被排序了。