MATLAB Answers

How to search for an exact string not just contains

11 views (last 30 days)
Sara Ismail-Sutton
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 !

  0 Comments

Sign in to comment.

Answers (2)

the cyclist
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')

  3 Comments

Sara Ismail-Sutton
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
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
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)
[words,num,raw]=xlsread('Distances.xlsx');
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

Sign in to comment.


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

  7 Comments

Show 4 older comments
Sara Ismail-Sutton
Sara Ismail-Sutton on 12 Sep 2020
I just tried this
mask = ismember(CellOfCharacterVectors, CharacterVectorToLookFor)
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
Walter Roberson on 12 Sep 2020
X = ismember((num),a));
1 1 0
2 -1
Count your open brackets.
Sara Ismail-Sutton
Sara Ismail-Sutton on 12 Sep 2020
omg hahhaa, yeh got it from the other line anywauy, thanks alot

Sign in to comment.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by