"contains" with multiple conditions
Version 1.1.5 (2.33 KB) by
Yasir
Returns logical true for the elements of a string array that contain a set of substrings combined by boolean operators.
Function based on MATLAB's "contains" which gives logical indices of string array "str" as true for the elements that contain a set of strings in "substr". The strings in "substr" can be combined by using EQUAL ('='), NOT ('~'), AND ('&'), OR ('|') operators processed in this order. If "substr" consists of multiple elements, they are combined by OR.
INPUTS:
"str" / "substr": string array or cell array of strings
OUTPUTS:
"idc_log": logical (TF) indices vector same length as "str"
EXAMPLE:
str = {'fuel', 'air', 'm_fuel', 'm_steam', 'Tsteam', 'Tair', 'Tfuel'};
substr = ['=Tair | ~steam | T & fuel & ~steam'];
substr = {'=Tair', '~steam', 'T & fuel & ~steam'}; % treated same as substr above
idc_log = contains_multi(str, substr)
idc_log gives indices of the elements in "str" which are exactly EQUAL to 'Tair' OR does not contain 'steam' OR contain 'T' AND 'fuel' but NOT 'steam'.
Version: 1.1
Tested on MATLAB 2020b
Yasir, 2023-11-11
Cite As
Yasir (2024). "contains" with multiple conditions (https://www.mathworks.com/matlabcentral/fileexchange/154925-contains-with-multiple-conditions), MATLAB Central File Exchange. Retrieved .
MATLAB Release Compatibility
Created with
R2020b
Compatible with R2020b and later releases
Platform Compatibility
Windows macOS LinuxTags
Acknowledgements
Inspired by: String Toolkits, structfind, mgrep, strfind for datasets
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.