小编典典

如何在2点之间填充数组列表?

java

我有这段代码。解释:

用户输入“ initcores”数据和“ ttime”数据(结果为“ fcores”)。

我想用从0到ttime的值填充x数组,并从initcores到fcores填充y并做散点图,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)。


阅读 202

收藏
2020-11-30

共1个答案

小编典典

您的for-loops错误。使用以下内容,您应该会很好:

 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));
}
2020-11-30