2017-08-28 44 views
1

內刪除子我有這樣如何將字符串

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

其中兩個「」是字符串中的空{1x1的細胞}子字符串。如何刪除空字符串像這樣與

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

這真的是一個字符串? –

+0

@Mohsen_Fatemi:沒有。它是由單元陣列組成的單元陣列。 – gnovice

+0

對不起,我對matlab很新,仍然用正確的術語拼湊... –

回答

3

最終可以使用cellfunisequal外單元陣列的每個單元比較{''},然後使用它作爲logical index,以消除那些細胞:

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

真棒,再次感謝gnovice –

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' 
相關問題