【发布时间】:2012-11-29 12:08:58
【问题描述】:
我有一个大约 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'
【讨论】:
() 与{}。用括号 () 索引元胞数组的工作方式与数值矩阵几乎相同。但是使用{} 进行索引会在您的评论中得到行为,即用空矩阵替换单元格的内容。 ps很高兴我能帮上忙。