我正在编写一个程序来修改csv文件中的数据。在csv文件中,列按以下方式组织。
X坐标,Y坐标,Z坐标,info,X,Y,Z,info,X,Y,Z信息.
第一个X坐标从第4列开始,下一个X坐标是后面的4列,在8中。对于Y,它是第5列和第9列,依此类推。由于我将数据保存到deque上,第一个数据对应于x的datarow#,y将是datarow#。
for(int k=0; k<618; k++) { //all rows 618
for(int l=3; l<96; l=l+4) { //x columns
for(int m=4; m<97; m=m+4) { //y columns
data[k][l] = (data[k][l] )*(data[k][2]) + (data[k][m])*(data[k][1]);在循环中的计算中,我希望它将列(k)中的所有x值(l)替换为从这个方程中得到的值(正如我为循环创建的那样)。
x' = x* cos(theta) + y* sin(theta)cos(theta)和sin(theta)的值在列2和3中为所有行(因此是datak和datak )找到。
不幸的是,在用几个cout语句测试这一点时,我注意到它没有按照需要做。
想要的循环行为:
的主要问题是k,l,m,不是所有的三个都是按照要求在数据线之后更新的,这会导致什么呢?谢谢。
发布于 2014-09-23 01:32:40
您不了解嵌套循环。
你的意图是这样的:
for(int k=0; k<618; k++) { //all rows 618
for(int n=0; n<24; ++n) { //groups
l = 4*n + 3;
m = 4*n + 4
data[k][l] = (data[k][l] )*(data[k][2]) + (data[k][m])*(data[k][1]);
}
}https://stackoverflow.com/questions/25985385
复制相似问题