我有一个包含4个变量的结构数组。分类问题
records[i].time
records[i].xaxis
records[i].yaxis
records[i].zaxis
其中i
将记录索引。其最大值是n
。在上面,records[i].time
按数组中的时间升序排列,以毫秒为单位。我必须找到
maximum of records[i].xaxis
minimum of records[i].xaxis
maximum of records[i].yaxis
minimum of records[i].yaxis
maximum of records[i].zaxis
minimum of records[i].zaxis
在records[i].time
一组中的每个第二的,找到差异(最大值 - 最小值),并分配给另一个结构
neighbour[k].difx
neighbour[k].dify
neighbour[k].difz
其中k将是各组的索引。 这是我迄今
i = 0; //initialize counter
int k = 1; // second
int j; //internal counter
float minx, maxx, miny, maxy, minz, maxz; // min and max values of the other 3 fields of the struct records
for (i = 0; i < n; i++){
//initialize min and max
maxx = records[i].xaxis;
minx = records[i].xaxis;
maxy = records[i].yaxis;
miny = records[i].yaxis;
maxz = records[i].zaxis;
minz = records[i].zaxis;
//start looking for the maximum and the minimum
for(j = i; j < n; j++){
if(records[j].time < k * 1000){//check only for values within the desired time period
if(records[j].xaxis > maxx){
maxx = records[j].xaxis;
}
if(records[j].xaxis < minx){
minx = records[j].xaxis;
}
if(records[j].yaxis > maxy){
maxy = records[j].yaxis;
}
if(records[j].yaxis < miny){
miny = records[j].yaxis;
}
if(records[j].zaxis > maxz){
maxz = records[j].zaxis;
}
if(records[j].zaxis < minz){
minz = records[j].zaxis;
}
}
}//once the proper values are found save the difference between max and min.
neighbour[i].difx = maxx-minx;
neighbour[i].dify = maxy-miny;
neighbour[i].difz = maxz-minz;
k++;
}
结果我得到都是不同的。感谢您的帮助。
什么问题?你有没有遇到任何错误? – 2016-04-26 02:17:09
我对这个问题的理解是,你正试图为每个1秒的数据定义一些围绕值的边界框。如果您告诉我们记录是否按时间排序,这将有所帮助。 – paddy
投票将其视为“不清楚你所问的内容” –