フィルターのクリア

Ismember for rows or something else

1 回表示 (過去 30 日間)
Rostislav Teryaev
Rostislav Teryaev 2018 年 7 月 2 日
コメント済み: Rostislav Teryaev 2018 年 7 月 2 日
Hello! I have to matrices a and b:
a = [1 2;
3 4;
5 6;
7 8;
1 2;
9 10]
b = [1 2;
5 6]
Every row in these tables describe one entity (start and target node of graph edge). So, I want to find indices of a where the rows are equal to rows in b. In other words I need to get this:
c = [1, 3, 5]
But when I use
[~, c] = ismember(b, a, 'row')
I get only this:
c = [1, 3]

採用された回答

Jan
Jan 2018 年 7 月 2 日
編集済み: Jan 2018 年 7 月 2 日
Simply swap the inputs:
[found, index] = ismember(a, b, 'rows')
result = find(found)
  2 件のコメント
Rostislav Teryaev
Rostislav Teryaev 2018 年 7 月 2 日
Exactly! Thank you
Rostislav Teryaev
Rostislav Teryaev 2018 年 7 月 2 日
I managed to do this:
a = [1 2;3 4;5 6;7 8;1 2;9 10]
b = [1 2;5 6]
a1 = permute(a,[1 3 2])
b1 = permute(b,[3 1 2])
find(any(all(a1==b1 , 3), 2))
:)

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

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

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

Start Hunting!

Translated by