如何找到两个MATLAB高数组之间的交集?

时间:2018-07-18 08:48:11

标签: arrays matlab

在常见数组中,intersection函数的效果很好,但对于高数组,此函数尚未实现。那么还有另一种方法可以找到这两者的共同点吗?

1 个答案:

答案 0 :(得分:0)

使用for循环进行检查

n = 1e4;
m = 1e3; %Batchsize
a = tall(randi(n,n,1));
b = tall(randi(n,1,n));

idx = tall(false(n,1));
for ii = 1:n/m
    idx = idx | any(a==b(1,(ii-1)*m+1:ii*m),2);
end

inter = a(idx);

m的位置控制您一次可以加载到内存中的阵列数量。速度越快,但您将需要足够的内存。