请帮助我如何使用 deviation_2DArray.java 中的变量
进入 NBC.java , NBC.java 我希望b[i]
和d[i][j]
平均c[j]
示例:
b[1]=avg (d[1][1]+d[1][2]+.....+d[1][5])
提前致谢。
2DArray.java
public class 2DArray {
public static void main(String[] args) {
double[][] d = new double[6][4];
double[][] e = {
{}, {
0.0, 0.6, 0.0, 0.0
}, {
0.0, 0.2, 0.5, 0.1
}, {
0.0, 0.2, 0.5, 0.4
}, {
0.0, 0.2, 0.5, 0.7
}, {
0.0, 0.0, 0.0, 0.9
}
};
double[] avg = new double[4];
double[] sum = new double[4];
int i, j, k;
//average of column
for (j = 1; j < e[1].length; j++) {
for (i = 1; i < e.length; i++)
System.out.println("e[" + i + "][" + j + "] = " + e[i][j]);
}
for (j = 1; j < e[1].length; j++) {
sum[j] = 0.0;
k = 0;
for (i = 1; i < e.length; i++)
if (e[i][j] > 0.0) {
sum[j] += e[i][j];
k++;
}
avg[j] = sum[j] / k;
System.out.println("Average of j[" + j + "] = " + avg[j]);
}
for (j = 1; j < e[1].length; j++) {
for (i = 1; i < e.length; i++)
if (e[i][j] > 0.0) {
d[i][j] = Math.abs(e[i][j] - avg[j]);
System.out.println("d[" + i + "][" + j + "] = " + d[i][j]);
}
}
}
}
NBC.java
public class NBC {
public static void main(String[] args) {
double[] b = new double[6];
double[] c = new double[4];
int count;
b[i] = d[i][j] / count;
}
}
答案 0 :(得分:1)
我会将其恢复为一个简单的词:getters。
答案 1 :(得分:1)
您需要在2DArray
类中创建类级别字段,并为这些字段提供getter方法。然后NBC
需要有2DArray
的实例,除非您将这些字段/ getter设为静态。
目前d
中的2DArray
变量仅在main方法的范围内,因此仅提供getter不会解决问题,因为d
只有范围方法。
此外,每个类都有自己的main
方法。每个应用程序只能执行一个main
。那么您的控制流程如何从2DArray
变为NBC
?如果2DArray
正在调用NBC
,那么您可以将数组作为参数传递。
答案 2 :(得分:0)
在2DArray中创建一个类似这样的方法:
public double getElement(int i, int j) {
return d[i][j];
}