Julia 两个数组按行求交

Julia 两个数组按行求交,julia,Julia,我刚从MATLAB转到Julia,我正在寻找一种按行求两个数组的交集的方法。例如,如果C=[10;01],D=[-10;01],则输出将是B,ind1,ind2=[01],2,2 MATLAB的对应项是:[B,ind1,ind2]=相交(C,D,'rows') 我该怎么做?在某些模块中是否有一个内置函数可以启用此操作?定义: function intersectML(ms::Array...) t = map(x->Dict(x[2][i,:]=>(x[1],i) for i=1

我刚从MATLAB转到Julia,我正在寻找一种按行求两个数组的交集的方法。例如,如果C=[10;01],D=[-10;01],则输出将是B,ind1,ind2=[01],2,2

MATLAB的对应项是:[B,ind1,ind2]=相交(C,D,'rows')

我该怎么做?在某些模块中是否有一个内置函数可以启用此操作?

定义:

function intersectML(ms::Array...)
  t = map(x->Dict(x[2][i,:]=>(x[1],i) for i=1:size(x[2],1)),enumerate(ms))
  u = intersect(map(keys,t)...)
  return (u,map(x->[x[r][2] for r in u],t)...)
end
然后你有:

julia> C = [1 0;0 1]; D = [-1 0;0 1]

julia> intersectML(C,D)
(Array{Int64,1}[[0,1]],[2],[2])
定义:

function intersectML(ms::Array...)
  t = map(x->Dict(x[2][i,:]=>(x[1],i) for i=1:size(x[2],1)),enumerate(ms))
  u = intersect(map(keys,t)...)
  return (u,map(x->[x[r][2] for r in u],t)...)
end
然后你有:

julia> C = [1 0;0 1]; D = [-1 0;0 1]

julia> intersectML(C,D)
(Array{Int64,1}[[0,1]],[2],[2])