Matlab:如何删除包含向量中存储的任何数字的行?

时间:2013-06-11 14:41:42

标签: matlab

我有一个名为 A 的163x2矩阵,以及一个名为 delindex 的15x1向量。 现在我想删除A中的每一行,其中包含存储在delindex中的任何数字作为第一行中的值。

简短的例子:

A =

           1       29292
           2       44652
           3       56569
           4       68909
           5       81053
           6       93343
         101      105585
         102      118870
         103      132163
           7      144257
         104      156616
           8      205344
           9      216865
         105      228979
         106      229307
         107      240849
         108      253306

我的delindex =

4
101
7
105

(并且可能的未来影响:我如何对其他行做同样的事情,在这个例子中是seconde一个?)

我已经查找了removerows和any()函数,但无法让它们为我工作。我对matlab和编程都很陌生,所以在这方面查看文档可能对我有所帮助!

提前致谢!

1 个答案:

答案 0 :(得分:2)

使用ismember(@ Prashant的建议):

ia = ismember(A(:,1), delindex);

intersect

[~,ia,~] = intersect(A(:,1), delindex);

查找应删除的行。 然后删除行:

A(ia,:) = []

注意

ismember返回逻辑索引,而在[C,ia,ib] = intersect (A,B)iaib是索引

两者都可用于索引。有关详细信息,请阅读Matrix Indexing in MATLAB