Why does contains(var1, var2) find matches in two different string arrays?
Show older comments
I have two string arrays, var1 and var2. When I use the contains function, I get a match, despite these two strings having zero common values.
String 1:
ch_names = {'FP1','FPz','FP2','AF7','AF3','AF4','AF8','F7','F5','F3',...
'F1','Fz','F2','F4','F6','F8','FT7','FC5','FC1','FC2','FC6','FT8',...
'T7','C5','C3','C1','Cz','C2','C4','C6','TP7','CP3','CP1','CP2',...
'CP4','TP8','P7','P5','P3','P1','Pz','P2','P4','P6','P8','PO7',...
'PO3','PO4','PO8','O1','Oz','O2','Iz'};
String 2:
MEG_ch = {'EOG061','EOG062','ECG063','STI101','STI201','STI301',...
'MISC201','MISC202','MISC203','MISC204','MISC205','MISC206','MISC301',...
'MISC302','MISC303','MISC304','MISC305','MISC306'};
Code used to compare the variables:
contains(string(MEG_ch), string(ch_names))
% Output:
%
% ans =
% 1×18 logical array
% 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1
The purpose of this code is to see if any string in ch_names (var2) occurs in MEG_ch (var1). If it does occur, then var1 gets categorized a certain way.
Also, if i switch var2 and var1's position in the contains function, I get the expected behavior of no matches. i.e contains(string(ch_names), string(MEG_ch)).
If there are more efficient ways to do this or I can explain a certain point in more detail, I welcome your suggestions.
Accepted Answer
More Answers (0)
Categories
Find more on Characters and Strings in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!