根据单元格数组值从矩阵中删除行

时间:2014-07-16 10:58:32

标签: matlab matrix cell-array matrix-indexing

我有2个单元阵列和一个矩阵。第一个名为' all_ids'是一个包含字符串的6650 x 1单元格。第二个单元阵列名为' needed_ids'是all_ids的一部分' all_ids'并且是6600 x 1单元格,也包含字符串。

这个矩阵名为' sales_num'是一个6650 x 500的双打矩阵,这里的行与行#all_ids'有关。我想要做的是从' sales_num'中删除一些行。我要删除的行是' all_ids'中的行。但不在' needed_ids'。请参阅下面的示例。

                                                    Result I'm looking for
all_ids      sales_num           needed_ids         sales_num (now altered)
abc1         1                   abc1               1
def1         2                   def1               2
ghi1         7                   jkl1               8
jkl1         8                   mno1               4
mno1         4                   stu1               2
pqr1         12
stu1         2
vwx1         5

1 个答案:

答案 0 :(得分:4)

使用 setdiff -

[~,row_ind] = setdiff(all_ids,needed_ids) %// Find rows exclusive to all_ids
sales_num(row_ind,:)=[]; %// Remove rows that match the exclusiveness