2016-11-28 146 views
0

我想删除该行,如果该行中的第一个元素包含在数组中。Matlab删除矩阵行,如果第一个元素在数组中

我已经矩阵:

A = [ 1 2; 1 5; 2 3; 3 4; 3 5; 4 5 ]; 

和数组

B = [1,2,3] 

在恩。我克隆到X

X = A 

和选择后,我应该得到:

X = [4 5] 

我试着做这样的事情:

X(:, 1 == any(B)) = []; 

回答

3

您可以使用ismember来检查第一列AA(:,1))中的值是否在B中,然后使用生成的逻辑阵列选择A的行不在B中,并将它们分配到X

X = A(~ismember(A(:,1), B),:); 

更新

如果你想检查第一或第二元素是B你可以做以下

X = A(~any(ismember(A:,1:2), B), 2), :); 

或者更简单地说,如果你只打算到有两列

X = A(~any(ismember(A, B), 2), :); 
+0

啊,谢谢! – sphynx

+0

另外,是否可以检查第1或第2个元素是否为成员? – sphynx

+0

@sphynx你只想要连续的第一个或第二个或* any *元素? – Suever

相关问题