Updated 17 Aug 2015
Applies ismember with flexible (reduced) memory footprint as shown in the snapshot.
If you are working with large datasets and ismember eats up completely the RAM, starts swapping on disk, freezes your pc, and causes lots of frustration, you might then want to split the task. This is what ismemberb() does for you, with equivalent results to ismember() applied to the whole dataset.
Basically, the same as in ismember() with the additional ability to specify in how many sub-blocks to process the inputs.
% Run unit tests
% Default use
A = randi(100,[1e7,1]);
B = randi(100,[1e7,1]);
% Custom block split
% Stress test vs ismember()
A = table(randi(1e6,[3e7,1]),randi(1e6,[3e7,1]));
B = table(randi(1e6,[3e7,1]),randi(1e6,[3e7,1]));
[idx1,pos1] = ismember(A,B);
[idx2,pos2] = ismemberb(A,B);
Check and report new issues to https://github.com/okomarov/ismemberb/issues
Oleg Komarov (2023). okomarov/ismemberb (https://github.com/okomarov/ismemberb), GitHub. Retrieved .
MATLAB Release Compatibility
Platform CompatibilityWindows macOS Linux
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!Start Hunting!
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
Versions that use the GitHub default branch cannot be downloaded