Excel 创建一个单元结构-MATLAB

Excel 创建一个单元结构-MATLAB,excel,matlab,structure,Excel,Matlab,Structure,我有一组数据,可以从附加的快照中看到。可以观察到,这是一组重复的数据。我正在尝试编写一段代码,以便该代码将创建一个主结构RoadXML,并将单元格中的所有后续文本作为结构元素 例如:RoadXML.Network.SubNetworks.SubNetwork.RoadNetwork.Grounds.Ground应生成一个结构RoadXML,该结构具有一个结构元素Networks,而inturn是一个结构。同样地,网络应该有子网络作为一个元素,它是一个结构,等等。。。此外,其余的数据应该将自己附加

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

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

现在的问题是,当excel工作表中出现重复的元素集时(如屏幕截图所示),只有最后一组数据保留下来,因此覆盖了已经存储的数据。也就是说,参考所附的屏幕截图,第30行到第34行的数据覆盖了第15行到第29行中已存储的所有数据

更新

为了更清楚地了解我的问题,在从第15行到第19行的迭代过程中,我的代码以快照中所示的精确格式将第一列中的数据存储为结构。i、 RoadXML是一个有网络的结构,而网络又是一个有子网络的结构,而inturn是一个有子网络的结构,等等,直到最后一个参数。最后,我们将把地面作为一个建筑内部的地面

由于A15和A20是相同的数据,一旦遇到第20行,代码应将先前的结构转换为单元格,在单元格中创建一个1x1结构,其中Attributesstructure作为字段。一旦属性被创建,粒度,抓地力;名称和类型应与B列中的相应值一起追加到属性中


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

检查新字段路径的一部分是否已存在。 例如,在第2行之后,将创建RoadXML.Network.SubNetworks.SubNetwork.RoadNetwork.Grounds.Ground.Attributes.granularity。 在第3行,路径till属性已经存在。仅缺少场夹点。 阅读有关检查嵌套结构中是否存在某个字段的内容

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

如果完整路径(包括最后一个字段)存在,请选择希望它执行的操作。覆盖?让那块地成为兽医

运行示例:

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


依此类推。

请说明在这种情况下您希望代码执行的操作,而不是覆盖。否则,问题就不清楚了嗨,谢谢你的回复。代码应该使用每组数据创建一个单元格数组。例如,屏幕截图中的一组数据从第15行到第19行。这意味着现在有4组数据。因此,我需要代码来创建一个1x4单元数组,而不是覆盖数据。我将相应地编辑这个问题。看我下面的答案。您在检查字段是否已经存在,或者在添加新值时是否遇到问题?嗨,RadioJava,我已经在使用isfield检查结构中是否存在字段。正如我在问题中更新的一样,有必要将重复的数据集转换为结构,并且这些结构应存储为单元数组的元素。更清楚地说,从屏幕截图上看,输出应该是一个1x4单元阵列接地。此单元格数组的每个元素都是一个结构属性。反过来,属性也应该是一个结构,它具有粒度、夹点、名称和类型作为结构成员。Ground不是一个1x1,包含一个结构属性吗?它是一个1x4单元数组,包含字段{粒度、网格、名称、类型}?如果我们为例如第15行到第19行获取一组数据,则yes Ground是一个1x1。但目标是使第15行到第34行的所有数据都采用这种格式。第15行到第19行是一组数据生成基础1x1,正如您所说,第20行到第24行是第二组数据生成基础1x2,依此类推。组是否有一个值,而不是一个结构?第1行的结果应该是什么?