如何删除字符串中的子字符串

时间:2017-08-28 21:03:04

标签: matlab

我有一个像这样的字符串

a={ {'a', 'b', 'c','d'}, {'e', 'f', 'g', 'h'} }

这两个'是字符串中的空{1x1 cell}子串。如何删除这样的空子字符串,最后以

结束
{{1}}

2 个答案:

答案 0 :(得分:3)

您可以使用cellfunisequal将外部单元格数组的每个单元格与{''}进行比较,然后将其用作logical index来删除这些单元格:

a(cellfun(@(c) isequal(c, {''}), a)) = [];

答案 1 :(得分:0)

您可以尝试使用此代码执行您想要的操作:

a={ {'a', 'b', 'c','d'},{''}, {'e', 'f', 'g', 'h'},{''} }
j = 1
for i = 1:length(a)
   if ~ ismember( a{i}, '' )
       b{j}=a{i}
       j = j+1
   end
end

然后变量a看起来像:

>> a{1}

ans = 

    'a'    'b'    'c'    'd'

>> a{2}

ans = 

    'e'    'f'    'g'    'h'