# How to search for an exact string not just contains

11 views (last 30 days)
Sara Ismail-Sutton on 12 Sep 2020
Hiyah
I'm searching a cell array for an exact string, e.g the data I am searching contains both 'Las Vegas, NV' and 'North Las Vegas, NV' and I want specifically the coordinats of 'Las Vegas, NV'
the code I've used so far is:
Y = ~cellfun('isempty',strfind(cellstr(num),'Las Vegas, NV'));
(then [row col] = find(Y==1) )
how do I modify?
Thanks alot !

the cyclist on 12 Sep 2020
Edited: the cyclist on 12 Sep 2020
Use strcmp instead, which checks for identical matches.
loc = {'Las Vegas, NV','North Las Vegas, NV'};
match = strcmp(loc,'Las Vegas, NV')

Sara Ismail-Sutton on 12 Sep 2020
but this isnt the entire goal of my code, this is just an issue in the code. i.e. it identifies anything which contains it, whereas i need a exact match...
the cyclist on 12 Sep 2020
Did you try my code? It only marks the first cell (the exact match) as "true".
Sara Ismail-Sutton on 12 Sep 2020
well i'm not sure how to implement it. my task is finding directions between arbitary cities, a and b.
i've done the stage of calulated the coordinates and then get these to navigate to the right place in the table of the data which gives the distance. my code has passsed the test for random cities who's string is such that one does not contain another. but i have came across this problem for the case of las vegas and las vegas north as in the original post. For e.g in arbritary language so far is:
function[distance] = get_distance(a,b)
X = ~cellfun('isempty',strfind(cellstr(num),a));
Y = ~cellfun('isempty',strfind(cellstr(num),b));
[row col] = find(X==1);
[r c]=find(Y==1);
a1=row(1);
a2=col(1);
a=[a1 a2]
b1=r(2)
b2=c(2)
b=[b1 b2]
c=[(a1+1),(b1+1)]
distance=raw{c(1),c(2)}
end
many thanks

Walter Roberson on 12 Sep 2020
I'm searching a cell array for an exact string
Use ismember()

Sara Ismail-Sutton on 12 Sep 2020
I just tried this
so :
X = ismember((num),a));
But got the error (corresponding to this line) as "When calling a function or indexing a variable, use parentheses. Otherwise, check for mismatched delimiters"
thanks...
Walter Roberson on 12 Sep 2020
X = ismember((num),a));
1 1 0
2 -1
Sara Ismail-Sutton on 12 Sep 2020
omg hahhaa, yeh got it from the other line anywauy, thanks alot