テキスト ファイルからいくつかの数値を読み取るこの小さなパーサーを作成しました。
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
データを水平方向に反転した理由がわかりませんか?