【问题标题】:Why does Matlab dbf-reader read certain integers wrong?为什么 Matlab dbf-reader 读取某些整数错误?
【发布时间】:2016-10-24 14:10:58
【问题描述】:

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

来自 dbf 文件的原始数据:

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 文件中的字段名称。

编辑:

dbf 文件是使用INM 创建的

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

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 ;距离,N,9,1

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

【问题讨论】:

  • 您如何查看原始数据?整数存储在什么类型的字段中?什么软件创建了 dbf 文件?
  • 您在编辑中看到了答案。

标签: matlab dbf dbase


【解决方案1】:

你用过更新版的STR2DOUBLE2CELL吗?

从上面的链接:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-03
    • 2012-07-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-29
    相关资源
    最近更新 更多