创建单元格结构 - MATLAB

时间:2018-04-09 13:16:47

标签: excel matlab structure

我可以从附加的快照中看到一组数据。可以看出,它是一组重复数据。我正在尝试编写一个代码,以便代码创建一个主结构“RoadXML”,单元格中的所有后续文本都作为结构元素。

例如:“RoadXML.Network.SubNetworks.SubNetwork.RoadNetwork.Grounds.Ground”应该生成一个结构RoadXML,其结构元素为“Networks”,其中inturn是一个结构。同样,“网络”应该将“子网”作为一个结构等元素......此外,其余数据应该附加到其各自字段下的主结构中。因此,最终只有一个结构将保留excel表中的所有数据作为其结构元素。

现在的问题是,当从屏幕截图中看到excel表中存在重复的元素集时,只有最后一组数据仍然会覆盖已经存储的数据。也就是说(参考附加的屏幕截图)第30行到第34行的数据写入了第15行到第29行的所有数据,这些数据已被存储。

更新

为了更清楚一点我的问题,在从第15行到第19行的迭代过程中,我的代码将第一列的数据存储为结构,其格式如snap中所示。即 RoadXML 是一个具有 Network 的结构,而 Network 又是一个具有 SubNetworks 的结构,其中int是一个具有 SubNetwork <的结构/ em>依此类推,直到最后一个参数。最后,我们将 Ground 作为 Grounds 内的结构。

由于A15和A20是相同的数据,一旦遇到第20行,代码应该将早先结构的 Ground 转换为单元格,在具有“属性”的单元格中创建1x1结构''(结构)作为一个领域。一旦''属性''被创建,''粒度'',''抓住''; ''name''和''type''应附加到''Attributes''中,并附有B栏中的相应值。

image  image

1 个答案:

答案 0 :(得分:0)

对于excel文件中的每一个新行:

  1. 检查新字段路径的一部分是否已存在。 例如,在第2行&#34; RoadXML.Network.SubNetworks.SubNetwork.RoadNetwork.Grounds.Ground.Attributes.granulosity&#34;被建造。 在第3行,路径直到&#34;属性&#34;已经存在。只有田地&#34;抓地力&#34;缺少。
  2. 阅读here,了解检查嵌套结构中是否存在某个字段。

    1. 如果路径的一部分存在,请开始添加现有路径结束的字段。

    2. 如果存在完整路径(包括最后一个字段),请选择您要执行的操作。覆盖?让那个领域成为一个转发者?

    3. 示例运行:

      第15行:地面不存在,因此创建: RoadXML....Ground{1,1}.Text="" 第16-19行:地面存在,添加属性 RoadXML....Ground{1,1}.Attributes.X=Y 第20行:地面包含1个单元格,因此添加一个单元格: RoadXML....Ground{1,2}.Text=""

      等等..