繁体   English   中英

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

[英]How to find the intersection between two MATLAB tall arrays?

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

使用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控制着您一次可以加载到内存中的数组数量。 速度越快,但是您将需要足够的内存。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM