matlab难以从Dexcom血糖传感器导入.xml数据 - 求助!不是程序员,只是想要享用汉堡的糖尿病患者

时间:2014-10-02 20:23:29

标签: matlab textscan

我的.xml数据看起来像<?xml version="1.0" encoding="UTF-8"?> -<Patient SerialNumber="SM62169666" IsKeepPrivate="1" IsDataBlinded="0" Id="{D9A334A0-C15E-405A-87FD-E2B3CB172A9C}"> -<MeterReadings> <Meter Value="166" InternalTime="2014-03-20 20:54:16" DisplayTime="2014-03-20 12:53:33"/> <Meter Value="176" InternalTime="2014-03-20 21:06:46" DisplayTime="2014-03-20 13:06:03"/> <Meter Value="86" InternalTime="2014-03-21 03:24:04" DisplayTime="2014-03-20 19:23:22"/> <Meter Value="56" InternalTime="2014-03-21 10:59:35" DisplayTime="2014-03-21 02:58:52"/> <Meter Value="249" InternalTime="2014-03-22 01:21:11" DisplayTime="2014-03-21 17:20:29"/>

它是一个大文件,我将不得不在块中读取。但是,我目前只是试图在包含有意义数据的第一行中读取 - Meter Value和DisplayTime。我以为我应该使用文本扫描。我打开文件并尝试按如下方式提取数据:

C = textscan(fid,'<Meter Value="%d " InternalTime="%s %s" DisplayTime="%s %s %*[^\n]',5,'HeaderLines',3)

我得到C =

[0x1 int32]    {0x1 cell}    {0x1 cell}    {0x1 cell}    {0x1 cell}

[0x1 int32]    {0x1 cell}    {0x1 cell}    {0x1 cell}    {0x1 cell}

并且,它说这些细胞是空的。它应该是读取5行数据,而不仅仅是2.并且,这些单元格不应该是空的。 ???我做错了什么?

1 个答案:

答案 0 :(得分:0)

Textscan的第一个输入是使用fopen时生成的文件的fileID,而不仅仅是文件名。

尝试

fid = fopen('C:\Users\Bobby\Desktop\bgData.xml')
C=textscan(fid,'<Meter Value="%d " InternalTime="%s %s" DisplayTime="%s %s %*[^\n]',5,'HeaderLines',3)
fclose(fid)

您的formatspec本身似乎也存在一些问题。