讀我必須用C語言編寫一個程序,從二進制文件以這種方式用Python寫的二進制文件用C
nCnt = 0;
for (i=0;i<h.nsph;++i) {
fread(&gp,sizeof(struct gas_particle),1,fp);
if (bGas) {
kd->p[nCnt].iOrder = nCnt;
for (j=0;j<3;++j) kd->p[nCnt].r[j] = gp.pos[j];
++nCnt;
}
}
讀取數據上面的代碼是不是程序的整個代碼我正在使用,但只有與我的問題相關的部分。我需要讀取nCnt
粒子的位置,即每個粒子的座標。 我有一個蟒蛇陣列這些位置,它看起來像這樣
pos=array([[[ 0.4786236 , 0.49046784, 0.48877147],
[ 0.47862025, 0.49042325, 0.48877267],
[ 0.47862737, 0.49039413, 0.4887735 ],
...,
[ 0.4785084 , 0.49032556, 0.48860968],
[ 0.47849332, 0.49041115, 0.48877266],
[ 0.47849161, 0.49041022, 0.48877176]]])
我應該怎麼寫這個數組中的二進制文件,使C代碼將精細讀呢?
據推測這是一個'numpy'陣列? – 2013-03-26 11:30:06
您是否檢查過此文件:http://stackoverflow.com/questions/807863/how-to-output-list-of-floats-to-a-binary-file-in-python(建議的解決方案使用http:// docs .python.org/2 /庫/ array.html)? – furins 2013-03-26 11:34:32
難道你不想將數據串化爲通用性嗎?例如,您可以將其存儲在JSON中,在這種情況下,您不會依賴於排序或位數。 – 2013-03-26 11:41:39