"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 (2026). "contains" with multiple conditions (https://uk.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
Discover Live Editor
Create scripts with code, output, and formatted text in a single executable document.
