我有这段代码。 解释:
用户输入“initcores”数据和“ttime”数据(“fcores”是a 结果)。
我想用x到ttime和y的值填充x数组 initcores到fcores并做散点图,x vs y。
我有一个问题:
如果我把“for(double t = 0; t< = fcores; t = t + fcores / 10.0){ y.add(T); “
它给了我一个情节,但错了。如果我把“for(double t = initcores; t< = fcores; ...”(这是 是的,因为我们是从initcores开始的)
它在情节中没有出现任何内容。
我不在这儿吗?
谢谢!
.........
Double initcores= getInitcores();
Double fcores= getFcores();
Double ttime=getTime();
ArrayList<Double> x =new ArrayList<Double>();
ArrayList<Double> y =new ArrayList<Double>();
//fill x,y values
for (double t=0;t<=ttime;t+=ttime/10.0){
x.add(t);
}
for (double t=initcores;t<=fcores;t+=fcores/10.0){
y.add(t);
}
TimeSeries series = new TimeSeries("Number of cores");
for (int i=0;i<x.size();i++){
for (int j=0;j<y.size();j++){
series.add(i,j);
}
}
..........
--------------编辑-------------------------------- ------
如果我使用:
double [] x = {0.0,ttime}; //time axis
double [] y = {initcores,fcores}; //number of cores axis
TimeSeries series = new TimeSeries("Number of cores");
for (int i=0;i<x.length;i++){
series.add(x[i],y[i]);
}
它给了我一个只有2分的情节。这就是我试图填充它们之间的点的原因(对于x轴:0-ttime,对于y轴:initcores-fcores)。
答案 0 :(得分:2)
你的for
- 循环错误了。使用以下的,你应该没事:
for (int i=0;i<=10;i++){
x.add(ttime / 10.0 * i);
}
for (int i=0;i<=10;i++){
y.add(initcores + ((fcores - initcores) / 10 * i));
}
这些循环会给你11分,但你可以根据自己的需要调整它们。
<强>更新强>
您自然必须使用列表中的正确值。确保两个列表具有相同的长度。
ArrayList<Double> x = new ArrayList<Double>();
ArrayList<Double> y = new ArrayList<Double>();
... above code ...
TimeSeries series = new TimeSeries("Number of cores");
for (int i=0;i<x.size();i++){
series.add(x.get(i),y.get(i));
}