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?

 Akzeptierte Antwort

Birdman
Birdman am 21 Feb. 2018

0 Stimmen

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

6 Kommentare

Garrett Miller
Garrett Miller am 21 Feb. 2018
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.
Birdman
Birdman am 21 Feb. 2018
Which version of MATLAB you have?
Garrett Miller
Garrett Miller am 21 Feb. 2018
R2017a
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)
Garrett Miller
Garrett Miller am 21 Feb. 2018
Okay that works much better, but how would I be able to set this up for B with varying amount of rows and columns?
Birdman
Birdman am 21 Feb. 2018
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.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (1)

Walter Roberson
Walter Roberson am 21 Feb. 2018

0 Stimmen

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

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by