为什么 Matlab dbf-reader 读错了某些整数?

Why does Matlab dbf-reader read certain integers wrong?

我用的matlab dbf reader可用 here 我注意到有时三位整数被读错了。

来自dbf-file的原始数据:

LAMAX,DTLD,1,599,727Q9,A,STANDARD,1,18,18,0,2359.5

但是查看 Matlab 中的数据,您会发现 599 变成了 995这是为什么?

'LAMAX','DTLD',[1],[995],'727Q9','A','STANDARD','1','18','18','0',
[2.3595e+03]

这是我用matlab代码读取dbf文件的方式

[dbfData, NAMES] = dbfread(path2file);

其中 dbfData 是实际数据,NAMES 是 dbf-file 中的字段名称。

编辑:

dbf-file 是用 INM

创建的

当我使用 OpenOffice 打开 dbf 文件时,headers 看起来像这样

METRIC_ID,C,6 ; GRID_ID,C,8I_INDEX,N,3,0 ; J_INDEX,N,3,0 ; ACFT_ID,C,12 ; OP_TYPE,C,1 ; PROF_ID1,C,8 ; PROF_ID2,C,1 ; RWY_ID,C,8 ; TRK_ID1,C,8 ; TRK_ID2,C,1 ; DISTANCE,N,9,1

扭曲的整数以不带小数的3位数字存储J_INDEX,N,3,0

你用过更新版的STR2DOUBLE2CELL吗?

来自上面的link:

如果输入参数中的位数不同,STR2DOUBLE2CELL 子函数有时会无法正常工作