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

时间:2012-01-21 16:39:02

标签: java android achartengine

我有这段代码。  解释:

用户输入“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)。

1 个答案:

答案 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));
}