为什么 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 子函数有时会无法正常工作
我用的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 子函数有时会无法正常工作