I have a cell array like this :
Input = {'CEEEGH';'CCEEG';'ABCDEFF';'BCFGG';'BCDEEG';'BEFFH';'AACEGH'}
我该如何删除输入中所有重复的字符,仅保留每个字符串中的一个字符?期望的输出应该像这样:
Output = {'CEGH';'CEG';'ABCDEF';'BCFG';'BCDEG';'BEFH';'ACEGH'}
I have a cell array like this :
Input = {'CEEEGH';'CCEEG';'ABCDEFF';'BCFGG';'BCDEEG';'BEFFH';'AACEGH'}
Output = {'CEGH';'CEG';'ABCDEF';'BCFG';'BCDEG';'BEFH';'ACEGH'}
使用:
cellfun(@unique,input,'UniformOutput',0)
ans =
'CEGH'
'CEG'
'ABCDEF'
'BCFG'
'BCDEG'
'BEFH'
'ACEGH'
编辑:
如@thewaywewalk所评论的一样,如果字母没有排序,为了保持顺序,您可以使用以下方法:
cellfun(@(x) unique(x,'stable'),input,'UniformOutput',0)
unique
的'stable'
属性,以保持字符串字母未排序的情况下的顺序。 - Robert Seifertcellfun(@(x) unique(x,'stable'),input,'UniformOutput',0)
- 直接在句柄中使用是不可能的,没错。 - Robert Seifert