MATLAB Answers

Translated by

このページのコンテンツは英語から自動翻訳されています。自動翻訳をオフにする場合は「<a class="turn_off_mt" href="#">ここ</a>」をクリックしてください。

MByk
0

Intersection of matrix rows up to a given column

MByk
さんによって質問されました 2017 年 7 月 12 日
最新アクティビティ MByk
さんによって コメントされました 2017 年 7 月 13 日
How can I find the number of intersecting elements of a matrix up to a user defined column? For example, intersection of first 3 elements. This is what I tried, but it is not working. Thx for the help.
r=[1 2 3 4 5 6; 2 3 4 5 6 1; 1 5 6 3 2 4];
d=3;
dist=pdist(r,@(a,b)length(intersect(a(:,1:d),b(:,1:d))))

  0 件のコメント

サインイン to comment.

1 件の回答

回答者: Walter Roberson
2017 年 7 月 12 日
 採用された回答

[A,B] = ndgrid(1:size(r,1),1:size(r,1));
dist = arrayfun(@(aidx,bidx)numel(intersect(r(aidx,1:d),r(bidx,1:d))), A, B);

  5 件のコメント

MByk
2017 年 7 月 13 日
Thx it is working perfectly fine much appreciated for your help but I wonder if it can be done by using "pdist" function because my code seems logical but it is not working.
Walter Roberson
2017 年 7 月 13 日
dist=pdist(r,@(a,b) sum(ismember(b(:,1:d), a(:,1:d)),2))
"A distance function must be of form
d2 = distfun(XI,XJ)
taking as arguments a 1-by-n vector XI, corresponding to a single row of X, and an m2-by-n matrix XJ, corresponding to multiple rows of X. distfun must accept a matrix XJ with an arbitrary number of rows. distfun must return an m2-by-1 vector of distances d2, whose kth element is the distance between XI and XJ(k,:)."
MByk
2017 年 7 月 13 日
Thank you this one is far too simple to interpret.

サインイン to comment.



Translated by