how can i compare two string matrix with conditions ?
1 view (last 30 days)
Show older comments
vengat manickam
on 19 Jan 2016
Commented: Andrei Bobrov
on 19 Jan 2016
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 Comment
Guillaume
on 19 Jan 2016
Edited: Guillaume
on 19 Jan 2016
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.
Accepted Answer
Stephen23
on 19 Jan 2016
>> 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).
0 Comments
More Answers (1)
Andrei Bobrov
on 19 Jan 2016
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
See Also
Categories
Find more on String Parsing 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!