【发布时间】:2014-07-13 04:53:12
【问题描述】:
我正在寻找合并两个元胞数组的字符串元胞数组的方法。例如:
A = {{'one' 'two'};{'three' 'four'};{'five' 'six'}};
B = {{'five' 'six'};{'seven' 'eight'};{'nine' 'ten'}};
我想得到类似的东西:
C = {{'one' 'two'};{'three' 'four'};{'five' 'six'};{'seven' 'eight'};{'nine' 'ten'}};
但是当我使用C = union(A, B) 时,MATLAB 返回错误:
类单元格的输入 A 和类单元格的输入 B 必须是字符串元胞数组,除非是字符串。
有谁知道如何以一种希望简单的方式做这样的事情?我将不胜感激。
替代方案:以字符串元胞数组的元胞数组以外的任何其他方式拥有一个分离字符串元胞数组的方法也是有用的,但据我所知,这是不可能的。
谢谢!
【问题讨论】:
-
您可以使用 m-times-n 字符串元胞数组,而不是字符串元胞数组的元胞数组。如果所有行的列数都不相同(尽管在您的示例中它们有),则可以填充空字符串。使用 m-times-n 元胞数组也许可以简化您想要做的事情。更好的是每行使用一个字符串,由带有分隔符(保留字符)的单个字符串组成。然后你可以使用
union -
我不得不修改我的其他函数才能像这样工作,但我认为这实际上是最好的解决方案!谢谢!我在实现 Daniel 的代码并意识到它认为 {'one' 'two'} 等于 {'two' 'one'} 后尝试了这个,这对我不起作用。