Arrays 如果第一个元素在数组中,则删除矩阵行
如果行中的第一个元素包含in数组,我将尝试删除该行 我得到了矩阵:Arrays 如果第一个元素在数组中,则删除矩阵行,arrays,matlab,matrix,Arrays,Matlab,Matrix,如果行中的第一个元素包含in数组,我将尝试删除该行 我得到了矩阵: A = [ 1 2; 1 5; 2 3; 3 4; 3 5; 4 5 ]; 和数组 B = [1,2,3] 在ex中,我正在克隆A到X X = A 在选择之后,我应该得到: X = [4 5] 我试过这样做: X(:, 1 == any(B)) = []; 您可以使用ismember检查A(A(:,1))的第一列中的值是否在B中,然后使用生成的逻辑数组选择A中不在B中的行,并将它们分配给X X = A(~ismembe
A = [ 1 2; 1 5; 2 3; 3 4; 3 5; 4 5 ];
和数组
B = [1,2,3]
在ex中,我正在克隆A到X
X = A
在选择之后,我应该得到:
X = [4 5]
我试过这样做:
X(:, 1 == any(B)) = [];
您可以使用
ismember
检查A
(A(:,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), :);
您可以使用
ismember
检查A
(A(:,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), :);
另外,是否可以检查第一个或第二个元素是否为成员?@sphynx是否只需要第一个或第二个元素或行中的任何元素?行中有两个元素,因此我需要知道任何(第一个或第二个或两个)元素是否为数组的成员。另外,是否可以检查第一个或第二个元素是否为成员?@sphynx是否只需要第一个或第二个元素或行中的任何元素?行中有两个元素,因此我需要知道任何(第一个或第二个或两者)元素是否为数组的成员。