3
我有一個約6000行的單元陣列。接下來,我有一個具有一組行索引的向量,我們稱它爲removalIdx
。我想創建一個新的單元格數組,其中包含原始單元格數組的所有行,其中包含removalIdx
指定的行。任何想法如何做到這一點,而不會回到for循環?如何從單元格數組中刪除特定的一組行?
我有一個約6000行的單元陣列。接下來,我有一個具有一組行索引的向量,我們稱它爲removalIdx
。我想創建一個新的單元格數組,其中包含原始單元格數組的所有行,其中包含removalIdx
指定的行。任何想法如何做到這一點,而不會回到for循環?如何從單元格數組中刪除特定的一組行?
下面的示例代碼應該回答你的問題:
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'
哇!謝謝!我很驚訝,這很容易!我假設將行設置爲[]會將它們作爲空單元保存在數組中,但我確認它實際上完全刪除了行。再次感謝! – robguinness
@robguinness這一切都歸結爲'()'與'{}'。使用圓括號「()」對單元格數組進行索引的方法與數字矩陣幾乎相同。但用'{}'索引會得到你評論中的行爲,即用空矩陣替換單元格的內容。 ps很高興我能幫忙。 –