gpt4 book ai didi

java - 数组中的数据去哪儿了?

转载 作者:行者123 更新时间:2023-12-01 13:48:30 25 4
gpt4 key购买 nike

我有一个处理草图,我试图在其中绘制我正在使用的数据集的散点图。我将 .CSV 文件加载到数组中没有问题,并且我可以将其全部格式化并将其放入“ token ”数组中,以便访问特定行中的信息。

问题似乎是在我解析数据并尝试映射信息以绘制图形之后,数组中的所有元素都返回 0.0。

代码有点长,但我会尽力将其保留到相关部分,并希望不会遗漏任何内容。

void setup(){
size(1024, 768)
smooth();

OfficinaBold36 = loadFont("OfficinaBold-36.vlw");

//Load data
googleData = loadStrings("RobFordCorrelate.csv");

//Init all the arrays
if((googleData == null){
println("Error, one of the datasets could not be loaded.");
}
else{

totalSearch = googleData.length-1;
googleDates = new int[totalSearch];
relativeInterest = new float[totalSearch];

//Also grabbing all column names for use later, if needed
columnNames = googleData[0].split(",");
}

parseGoogleData();
}

这是 parseGoogleData 函数:

void parseGoogleData(){

/*Grab all the dates, we have to loop backwards through this set,
because the CSV was formatted in reverse chronological order.

Note that because of the row > 0 condition, we will not include
row 0, i.e the column title row */

for (int row = googleData.length-1 ; row > 0; row--){

/*counter going up, we need a reference to a counter that
counts up, while the main index counts down, to be
able to assign certain values*/
int i = 0;

//Grab all the elements in that row, splitting them at the comma
googleTokens = googleData[row].split(",");

// Grab the elements we want to look at, the date, index 0
googleDates[i] = int(googleTokens[0]);

//and relative interest in the search term "rob ford", index 1
relativeInterest[i] = float(googleTokens[1]);


//increment our 2nd counter
i++;
}
}

relativeInterest 数组也是一个全局变量,因此我可以在设置和绘制中访问它。现在,如果我在最后一个 for 循环中 println(relativeInterest[i]) ,它将返回所有正确的数据。但是,如果我在下面的 draw() 循环中打印它,它们都会返回零(我只包括引用绘制每个点的线,因为我有很多 x 和 y 轴的定位数据不想包括):

void draw(){
for(int row = 0 ; row < totalSearch; row++){
float y = map(relativeInterest[row], -3, 3, 0, width);
float x = row*lb;

int d = 5;

noStroke();
fill(#FFBA00, 180);
ellipse(x, y, d, d);
}

当我运行这段代码时,每个椭圆都位于完全相同的 y 位置,我不知道数组中的数据何时设置为 0?在这些行到达之前,绘制循环中的内容不会访问数组,但我不知道为什么它们会被转换为 0.0?

非常感谢任何/所有帮助。抱歉这么长的帖子!

最佳答案

int i = 0; 移到 for 循环之外。另外,您还需要 Integer.valueOfFloat.valueOf,而不是 int()float()

关于java - 数组中的数据去哪儿了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20158610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com