logic vector given two string arrays?

I am given 2 char arrays, let's call them A and B, A has constant dimensions and values and B varies in both.
I am trying to get a logic vector of all zeros and ones in a single column. for each row of the column I need the value to be one i the array in row one of A contains any of the strings in array B.
For example,
A=
'hello'
'world'
'this '
'is '
'an '
'examp'
'le '
and
B=
'is'
'he'
So the return would be
'1'
'0'
'1'
'1'
'0'
'0'
'0'
How would I write this to give it back in this form?

 Accepted Answer

A=["hello","world","this","is","an","examp","le"];
B=["is","he"];
contains(A,B)

6 Comments

When I attempt to do that I get an error
Error using contains First argument must be a string array, character vector, or cell array of character vectors.
Which version of MATLAB you have?
contains function can be used for the versions after R2016b. Anyway, try this then:
A={'hello','world','this','is','an','examp','le'};
B={'is','he'};
contains(A,B)
Okay that works much better, but how would I be able to set this up for B with varying amount of rows and columns?
It should work for any size of B, just change B cell array according to your needs and run the code again. The size does not matter.

Sign in to comment.

More Answers (1)

reshape( char('0' + ismember(cellstr(A), cellstr(B))), [], 1)

Categories

Community Treasure Hunt

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

Start Hunting!