I want to compare two string matrix like a=[yes yes;no no] &b=[no yes;yes no] with conditions like if yes&yes=a;no&no=b;yes&no=c;no&yes=d..and i want to count no of common elements like 'no' (common in both matrix(a(2,2)&b(2,2)).

댓글 수: 1

Guillaume
Guillaume 2016년 1월 19일
편집: Guillaume 2016년 1월 19일
Please, use valid matlab syntax in your example (or accurate terms for what you describe). You cannot have a string matrix like: a=[yes yes;no no]
You could have a 2D char array (what you could call a string matrix)
a = ['yes' 'yes'; 'no ' 'no '] %note the extra spaces!
which is exactly the same as
a = ['yesyes'; 'no no '];
or you could have a 2D cell array of strings
a = {'yes' 'yes'; 'no' 'no'};
Your question about conditions is also not clear because again, you're not using syntax that makes sense.

댓글을 달려면 로그인하십시오.

 채택된 답변

Stephen23
Stephen23 2016년 1월 19일
>> a={'yes','yes';'no','no'};
>> b={'no','yes';'yes','no'};
>> X = strcmp(cat(3,a,b),'yes');
>> Y = 1 + diff(X,1,3) + 2*all(X,3)
Y =
0 3
2 1
Where 0=(yes,no), 1=(no,no), 2=(no,yes), 3=(yes,yes).

추가 답변 (1개)

Andrei Bobrov
Andrei Bobrov 2016년 1월 19일
a={'yes' 'yes';'no' 'no'}
b={'no' 'yes';'yes' 'no'}
aby = cellfun(@(x)strcmp(x,'yes'),a)
bby = cellfun(@(x)strcmp(x,'yes'),b)
a1 = aby & bby
b1 = ~aby & ~bby
c = aby & ~bby
d = ~aby & bby

댓글 수: 2

Stephen23
Stephen23 2016년 1월 19일
편집: Stephen23 2016년 1월 19일
Note that cellfun is not required, as strcmp also works on cell arrays:
>> strcmp(a,'yes')
ans =
1 1
0 0
Thank you Stephen!

댓글을 달려면 로그인하십시오.

카테고리

도움말 센터File Exchange에서 Logical에 대해 자세히 알아보기

질문:

2016년 1월 19일

댓글:

2016년 1월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by