2012-11-29 32 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很高兴我能帮忙。 –

相关问题