2012-11-29 33 views
3

我有一個約6000行的單元陣列。接下來,我有一個具有一組行索引的向量,我們稱它爲removalIdx。我想創建一個新的單元格數組,其中包含原始單元格數組的所有行,其中包含removalIdx指定的行。任何想法如何做到這一點,而不會回到for循環?如何從單元格數組中刪除特定的一組行?

回答

3

下面的示例代碼應該回答你的問題:

B = {'hello';'world';'are';'you';'there'}; %# Example cell array 
ToRemove = [2; 4]; %# Example indices to remove 
Soln = B; %# Create the new cell array 
Soln(ToRemove) = []; %# Remove the offending rows 

需要注意的是:

>> Soln 

Soln = 

    'hello' 
    'are' 
    'there' 
+0

哇!謝謝!我很驚訝,這很容易!我假設將行設置爲[]會將它們作爲空單元保存在數組中,但我確認它實際上完全刪除了行。再次感謝! – robguinness

+2

@robguinness這一切都歸結爲'()'與'{}'。使用圓括號「()」對單元格數組進行索引的方法與數字矩陣幾乎相同。但用'{}'索引會得到你評論中的行爲,即用空矩陣替換單元格的內容。 ps很高興我能幫忙。 –

相關問題