Find overlap of 2 cell strings.
This can be used for a faster calculation of:
INTERSECT, ISMEMBER, SETDIFF and UNION.
Comparison to Matlab's INTERSECT:
- Consider repeated strings (no internal UNIQUE)
- No sorting
- Can be insensitive for upper/lower case
- M-version as demonstration of the method
- MEX-version: 90% to 98% faster than INTERSECT
[AI, BI] = CStrAinBP(A, B, CaseSensitive)
INPUT:
A, B: Cell strings.
CaseSensitive: Optional string to trigger sensitivity for case.
OUTPUT:
AI: Indices of common strings in A.
Each occurence of repeated strings is considered.
AI is sorted from low to high indices.
BI: Indices of common strings in B.
If B is not unique, the first occurrence of a string is used.
such that A{AI} == B{BI}.
EXAMPLES:
[AI, BI] = CStrAinBP({'a', 'b', 'q', 'a'}, {'a', 'c', 'd', 'a', 'b'})
replies: AI = [1, 2, 4] and: BI = [1, 5, 1]
[AI, BI] = CStrAinBP({'a', 'b', 'A'}, {'a', 'c', 'a', 'B', 'b'}, 'i')
replies: AI = [1, 2, 3] and: BI = [1, 4, 1]
INCLUDED FILES:
CStrAinBP.m: Proof of concept, demonstration.
CStrAinBP.C: Fast MEX function.
CStrAinBP.MEXW32: Compiled for Matlab 7 with LCC3.8.
Please recompile it with your favorite compiler.
Matlab6/CStrAinBP.DLL: Compiled for Matlab 6 with BCC5.5.
For Matlab 6, replace the MEXW32 file by this DLL.
TestCStrAinBP: Run the test after installation or compiling.
Tested: Matlab 6.5, 7.7, 7.8, Win2K/XP
引用格式
Jan (2024). CStrAinBP (https://www.mathworks.com/matlabcentral/fileexchange/24380-cstrainbp), MATLAB Central File Exchange. 检索来源 .
MATLAB 版本兼容性
平台兼容性
Windows macOS Linux类别
标签
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!