我有一个名为 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和编程都很陌生,所以在这方面查看文档可能对我有所帮助!
提前致谢!
答案 0 :(得分:2)
使用ismember
(@ Prashant的建议):
ia = ismember(A(:,1), delindex);
[~,ia,~] = intersect(A(:,1), delindex);
查找应删除的行。 然后删除行:
A(ia,:) = []
注意强>
ismember
返回逻辑索引,而在[C,ia,ib] =
intersect
(A,B)
,ia
和ib
是索引
两者都可用于索引。有关详细信息,请阅读Matrix Indexing in MATLAB。