Intersection of three and more arrays

8 vues (au cours des 30 derniers jours)
Baisseyev Miram
Baisseyev Miram le 15 Nov 2018
Commenté : Baisseyev Miram le 16 Nov 2018
Hi, is it possible in matlab to find intersection of three and more arrays and index of intersection value in each of three array? Like [C,ia,ib] = intersect(A,B) but for three or more arrays.

Réponse acceptée

Bruno Luong
Bruno Luong le 15 Nov 2018
My FEX returns the index of the arrays
  8 commentaires
Bruno Luong
Bruno Luong le 15 Nov 2018
Modifié(e) : Bruno Luong le 15 Nov 2018
IIUC, what you want is the common element with the lowest max indexes over all the set.
a = [5,6,4,7,8],
b = [7,8,6,5,4],
c = [4,8,5,6,7],
sets = {a,b,c};
nset = length(sets);
idx = cell(1,nset);
[s,idx{:}] = mintersect(sets{:});
idx = cat(1,idx{:});
imax = accumarray(repmat((1:length(s))',nset,1),idx,[],@max);
[~,iminmax] = min(imax);
firstelem = s(iminmax) % returns 5
Baisseyev Miram
Baisseyev Miram le 16 Nov 2018
Yes, thank you very much for spending your time

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Logical dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by