## Matching based on the first word

Danielle Leblance

### Danielle Leblance (view profile)

さんによって質問されました 2017 年 11 月 10 日

### Jan (view profile)

さんによって 編集されました 2017 年 11 月 10 日
Jan

### Jan (view profile)

さんの 回答が採用されました
Hi,
I have two cell arrays A and B where each contains companies names: for example A contains "Biotech Capital Corp" while B contains the same company but listed differently "BIOTECH CAP CORP". Can I match A and B based on the first word in the text? I mean can i write a code that tells that "Biotech Capital Corp" matches "BIOTECH CAP CORP" based on teh first word in the two strings "biotech" ?

#### 0 件のコメント

サインイン to comment.

## 3 件の回答

Jan

### Jan (view profile)

님의 답변 10 Nov 2017
Jan

### Jan (view profile)

님이 편집함. 10 Nov 2017
채택된 답변

A_list = {'Biotech Capital Corp', 'Apple something', 'tesla something else'};
B_list = {'Volvo Car AB', 'BIOTECH CAP CORP', 'TESLA by Elon Musk'};
A1 = strtok(A_list, ' ');
B1 = strtok(B_list, ' ');
[LiA, LocB] = ismember(lower(A1), lower(B1)); % Or the other way around
[AInd, BInd] = CStrAinBP(strtok(A_list), strtok(B_list), 'i')

#### 0 件のコメント

サインイン to comment.

per isakson

### per isakson (view profile)

님의 답변 10 Nov 2017
per isakson

### per isakson (view profile)

님이 편집함. 10 Nov 2017

Yes, try this
match = cssm()
match =
0 1 0
0 0 0
0 0 1
A_list items on the rows and B_list on the columns, i.e.
• the first item in A_list matches the second item in B_list.
• the fourth item in A_list matches the fourth item in B_list.
where
function match = cssm()
A_list = {'Biotech Capital Corp', 'Apple something', 'tesla something else'};
B_list = {'Volvo Car AB', 'BIOTECH CAP CORP', 'TESLA by Elon Musk'};
match = false( length( A_list ), length( B_list ) );
for jj = 1 : length( A_list )
a1 = regexp( A_list{jj}, '\<\w+\>', 'once', 'match' );
xpr = sprintf( '\\<%s\\>', a1 );
cac = regexpi( B_list, xpr );
%
match( jj, : ) = cellfun( @(pos) not(isempty(pos))&&pos==1, cac );
end
end

#### 0 件のコメント

サインイン to comment.

KSSV

### KSSV (view profile)

님의 답변 10 Nov 2017

Read about strcmpi. It compares strings irrespective of what case they are in.

#### 1 件のコメント

Danielle Leblance

### Danielle Leblance (view profile)

10 Nov 2017
I don't think it will work since i am not comparing two complete strings. Rather I would like to compare the first word of two strings.

サインイン to comment.

Translated by