Matlab 查找数组中不在其他数组中的元素
我有两个数组,比如A=[1;2;4;7;10;20]; B=[1;4;8]Matlab 查找数组中不在其他数组中的元素,matlab,Matlab,我有两个数组,比如A=[1;2;4;7;10;20]; B=[1;4;8] 现在我想找到A的元素,它们不在B.e中;[2;7;10;20]. 我只需要它们的索引,即A中元素[2;7;10;20]的索引。如何在matlab中实现这一点。我可以使用循环和所有。但这不是我想要的。我想要一个优雅的解决方案。建议?如果您想要A中不在B中的元素,可以使用 如果您想要元素的索引而不是它们的值,您可以使用并否定结果。您可以使用ismember函数来实现这一点 A = [1;2;4;7;10;20]; B =
现在我想找到A的元素,它们不在B.e中;[2;7;10;20]. 我只需要它们的索引,即A中元素[2;7;10;20]的索引。如何在matlab中实现这一点。我可以使用循环和所有。但这不是我想要的。我想要一个优雅的解决方案。建议?如果您想要A中不在B中的元素,可以使用
如果您想要元素的索引而不是它们的值,您可以使用并否定结果。您可以使用
ismember
函数来实现这一点
A = [1;2;4;7;10;20];
B = [1;4;8];
ismem = ismember(A,B);
我会给你
[1 0 1 0 0 0]'
[2 7 10 20]'
如果确实需要索引,可以使用find
find(ismem==0)
作为提醒,您可以始终使用逻辑索引,如下所示:
A(~ismem)
我会给你
[1 0 1 0 0 0]'
[2 7 10 20]'
签出
setxor
:
[C,ia,ib]=setxor(A,B)
是“数学作业”页面。对于A中而不是B中的索引,您需要ia
。[TF,LOC]=ismember(A,S)对于数组A,返回一个与A大小相同的数组,其中A的元素在集合S中,否则返回0。匹配的索引在LOC中提供,LOC中包含S中每个元素的最高绝对索引(S),如果没有此类索引,则为0。可能的