合并字符串元胞数组并去除重复项的实现方法
合并元胞数组并去除重复元素的MATLAB解决方案
嘿,这个问题在MATLAB里其实有非常简洁的处理方式,我给你推荐两种实用的方法:
方法一:用unique函数一步到位(推荐)
这是最直接高效的方案,unique函数本身就支持对元胞数组去重,还能自动按字典序排序,刚好匹配你想要的结果:
a = { 'A', 'B', 'C', 'D'}; b = { 'E', 'A', 'F', 'D'}; % 先横向拼接两个元胞数组,再用unique去重排序 c = unique([a, b]);
执行后c就会得到 {'A','B','C','D','E','F'},完全符合你的目标。
方法二:手动拼接+去重(适合自定义逻辑场景)
如果你需要更灵活的控制(比如保留元素首次出现的顺序,而不是强制排序),可以用ismember函数来实现:
a = { 'A', 'B', 'C', 'D'}; b = { 'E', 'A', 'F', 'D'}; % 先合并两个元胞数组 combined = [a, b]; % 找出所有未重复的元素索引 unique_idx = ~ismember(combined, combined(1:find(ismember(combined, combined), 1, 'last')-1)); % 提取唯一元素 c = combined(unique_idx);
不过这个方法会保留元素的原始出现顺序(这次结果刚好和目标一致,但如果原始数组顺序不同,结果也会对应变化),适合有特殊顺序需求的场景。
内容的提问来源于stack exchange,提问作者Jepessen
相关产品推荐
相关产品推荐

