2

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

简短的例子:

一个=

           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

我的删除索引 =

4
101
7
105

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

我查找了 removerows 和 any() 函数,但无法让它们为我工作。我对 matlab 和编程完全陌生,因此查看有关此文档的地方也可能对我有所帮助!

提前致谢!

4

1 回答 1

2

使用ismember(@Prashant 的建议):

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

或者intersect

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

查找应删除哪些行。然后删除行:

A(ia,:) = []

笔记

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

两者都可以用于索引。有关更多信息,请阅读MATLAB 中的矩阵索引

于 2013-06-11T14:58:16.493 回答