查看: 156|回复: 5|关注: 0

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

[复制链接]

新手

18 麦片

财富积分


050


5

主题

14

帖子

0

最佳答案
例如两个集合:
A=【1 1 3 2】;B=【1】;
我想要求得A比B多的元素,:(1 2 3)。用setdiff貌似只能得到(2 3),无法解决保留重复元素的问题。请问各位大神我该如何操作?谢谢。
回复主题 已获打赏: 0 积分

举报

论坛优秀回答者

4

主题

1665

帖子

205

最佳答案
  • 关注者: 95
发表于 2020-11-21 20:05:35 | 显示全部楼层 |此回复为最佳答案
A(find(A==B,1))=[]
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


5

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-11-22 07:52:46 | 显示全部楼层

您好,我试了下,成功了,能麻烦您给我解释一下括号里那个1是什么意思吗?不胜感激
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


5

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-11-22 08:32:10 | 显示全部楼层

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

举报

论坛优秀回答者

4

主题

1665

帖子

205

最佳答案
  • 关注者: 95
发表于 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
回复此楼 已获打赏: 0 积分

举报

新手

18 麦片

财富积分


050


5

主题

14

帖子

0

最佳答案
 楼主| 发表于 2020-11-22 08:42:45 | 显示全部楼层
coolchen302 发表于 2020-11-22 08:34
find(*,1),这个1表示返回第一个匹配的位置
如果B是向量,那这种用法就不行了
简单的是加个循环了

好的好的,太谢谢了。
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /5 下一条

快速回复 返回顶部 返回列表