[已解决] (1 1 3 2)与1的差异化元素(1 3 2)如何提取。

[复制链接]
钟夏 发表于 2020-11-21 16:36:44
例如两个集合:
A=【1 1 3 2】;B=【1】;
我想要求得A比B多的元素,:(1 2 3)。用setdiff貌似只能得到(2 3),无法解决保留重复元素的问题。请问各位大神我该如何操作?谢谢。

最佳答案


coolchen302 发表于 2020-11-21 20:05:35
A(find(A==B,1))=[]
回复此楼

5 条回复


coolchen302 发表于 2020-11-21 20:05:35
A(find(A==B,1))=[]
回复此楼

钟夏 发表于 2020-11-22 07:52:46

您好,我试了下,成功了,能麻烦您给我解释一下括号里那个1是什么意思吗?不胜感激

钟夏 发表于 2020-11-22 08:32:10

而且如果
A=[3 1 1 2 ];
B=[1 2];
想要求得差异元素【1 3】,实验了一下,这个方法行不通吧?没整明白,麻烦您帮我解下惑,谢谢。

coolchen302 发表于 2020-11-22 08:34:45
钟夏 发表于 2020-11-22 08:32
而且如果
A=[3 1 1 2 ];
B=[1 2];

find(*,1),这个1表示返回第一个匹配的位置
如果B是向量,那这种用法就不行了
简单的是加个循环了
for m=1:length(B)
  A(find(A==B(m),1))=[]
end

钟夏 发表于 2020-11-22 08:42:45
coolchen302 发表于 2020-11-22 08:34
find(*,1),这个1表示返回第一个匹配的位置
如果B是向量,那这种用法就不行了
简单的是加个循环了

好的好的,太谢谢了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

相关帖子
热门教程
站长推荐
快速回复 返回顶部 返回列表