我编写了这个从文本文件中读取一些数字的小解析器。
data.resize(7,datapoints); //Eigen::Matrix<float,7,-1> & data
dst = data.data();
while( fgets(buf,255,fp) != 0 && i/7 < datapoints)
{
int n = sscanf(buf,"%f \t%f \t%f \t%f \t%f \t%f \t%f",dst+i++, dst+i++,dst+i++,dst+i++,dst+i++,dst+i++,dst+i++);
i = i - 7 * (n<=0);
}
fclose(fp);
return !(datapoints == i/7);
问题是,当我对它翻转的数据执行 std::cout 时。
数据在:
0 4 0.35763609 0.64077979 0 0 1
0 4 0.36267641 0.68243247 1 0 2
0 4 0.37477320 0.72945964 2 1 3
data.col(3) 是
0.64077979
0.68243247
0.72945964
和 data.col(4) 是
0.35763609
0.36267641
0.37477320
我看不出它为什么水平翻转数据的逻辑?