內刪除子我有這樣如何將字符串
a={ {'a', 'b', 'c','d'},{''}, {'e', 'f', 'g', 'h'},{''} }
其中兩個「」是字符串中的空{1x1的細胞}子字符串。如何刪除空字符串像這樣與
a={ {'a', 'b', 'c','d'}, {'e', 'f', 'g', 'h'} }
內刪除子我有這樣如何將字符串
a={ {'a', 'b', 'c','d'},{''}, {'e', 'f', 'g', 'h'},{''} }
其中兩個「」是字符串中的空{1x1的細胞}子字符串。如何刪除空字符串像這樣與
a={ {'a', 'b', 'c','d'}, {'e', 'f', 'g', 'h'} }
最終可以使用cellfun
和isequal
外單元陣列的每個單元比較{''}
,然後使用它作爲logical index,以消除那些細胞:
a(cellfun(@(c) isequal(c, {''}), a)) = [];
真棒,再次感謝gnovice –
你可以嘗試這個代碼來執行你想要什麼:
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'
這真的是一個字符串? –
@Mohsen_Fatemi:沒有。它是由單元陣列組成的單元陣列。 – gnovice
對不起,我對matlab很新,仍然用正確的術語拼湊... –