find a word in sentence by "strfind"

11 views (last 30 days)
i want to search in a cell by a word using "strfind" and if it exist return 1 if not return 0
this is the rows i search in:
i am using now "strcmpi" as: % it returns 1 or 0 but it search only for the same word % strfind: search for any word containing this letters%
if strcmpi(alldata{i,6},'battery') % search for word "battery" in 6th column
how i can do it by "strfind" ?
note : i split the sentence into words for easy search so i want by the end to sum the whole row if the sum =< 1 means that this row has the word i search for

Accepted Answer

Stephen23
Stephen23 on 18 May 2015
Edited: Stephen23 on 18 May 2015
You can simply wrap the strfind inside isempty, like this:
>> ~isempty(strfind('Schroedingers cat is alive!','cat'))
ans =
1
You can also use regexp to quickly identify matching substrings. Here is a simple example that locates the string cat inside a cell array of strings.
>> A = {'the cat sat on the mat','the cat in the hat','four blind mice','cats!'};
>> ~cellfun('isempty',regexp(A,'cat'))
ans =
1 1 0 1
And if you want case-insensitive matching then use regexpi instead. Note that regexp also has many other powerful features that may be of interest to you... the documentation explains these, with examples too.

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!