Intersection of two sets keeping all intersected values

Say I have two sets a, and b such that:
a=[1 2 3 4 5 6 6 6 7 8 9 10]
b=[1 12 113 1 25 3 6 6 ]
intersect(a,b)= 1, 3, 6
I want to take the intersection of these two sets, and keep all values of intersection (i.e. not just the unique values that the intersection function outputs).
That is, I want:
intersect(a,b)= 1, 3, 6, 6

1 件のコメント

Marc Compere
Marc Compere 2021 年 3 月 27 日
this is certainly a valid concern.
there needs to be an option to do this natively. this is not the expected behavior of a set intersection. this is expected behavior of a unique set intersection. unique is ok but there needs to be an option for non-unique similar to 'stable'

サインインしてコメントする。

 採用された回答

Azzi Abdelmalek
Azzi Abdelmalek 2014 年 7 月 15 日

1 投票

a=[1 2 3 4 5 6 6 6 7 8 9 10]
b=[1 12 113 1 25 3 6 6 ]
out=a(ismember(a,b))

1 件のコメント

Marc Compere
Marc Compere 2021 年 3 月 27 日
this is helpful but should be a default within the set interction function

サインインしてコメントする。

その他の回答 (1 件)

Ben11
Ben11 2014 年 7 月 15 日

0 投票

Try this:
a(ismember(a,b))
ans =
1 3 6 6 6
6 appears 3 times since it is at 3 locations in a.

カテゴリ

ヘルプ センター および File ExchangeFunctions についてさらに検索

製品

質問済み:

2014 年 7 月 15 日

コメント済み:

2021 年 3 月 27 日

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by