【发布时间】:2021-05-19 03:31:38
【问题描述】:
我有一个名为 tmp 的 1x234 元胞数组,我想从中删除所有重复项。 tmp 的一些元素可以是:
tmp{1, 3} -> 'Ro'
tmp{1, 167}{1, 1} -> 'Ro'
tmp{1, 167}{1, 2} -> 'CvF'
在前两个中,我只想保留tmp{1, 167}{1, 1} -> 'Ro'。
另外,我想把包含cells-within-cells的条目,比如:
tmp{1, 167}{1, 1} -> 'Ro'
tmp{1, 167}{1, 2} -> 'CvF'
进入:
tmp{1, 167}-> 'Ro'
tmp{1, 168}-> 'CvF'
我怎样才能实现这两个目标?
【问题讨论】:
-
有可能,是的。但是,确切的实现取决于您的数据结构,特别是嵌套的深度,是否仅包含单元格等。它还取决于您的解决方案需要的效率。如果您的所有数据都是嵌套在未知深度的单元格中的字符向量,您可以创建一个字符串向量并迭代地+递归地“拆箱”您的单元格数组并将条目分配给这个向量。一旦你的数据结构被展平,删除重复就很简单了(使用
unique)。 -
感谢您的回答。很难理解你的意思。它的嵌套并不深。最深的级别是我之前发布的级别。 tmp{1, 167}{1, 1} -> 'Ro' tmp{1, 167}{1, 2} -> 'CvF' 数组的内容只是字母。
标签: string matlab duplicates cell-array flatten