如何在2点之间填充数组列表?
我有这段代码。 解释:
用户输入“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 x =new ArrayList(); ArrayList y =new ArrayList(); //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)。
你的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 x = new ArrayList (); ArrayList y = new ArrayList (); ... above code ... TimeSeries series = new TimeSeries("Number of cores"); for (int i=0;i