2015-08-15 66 views
2

我有一个单元格列向量,其长度均为三个字母。我需要创建一个长度相同的列向量,当符号XYZ存在时返回1,否则返回0。我已经浪费了2个小时试图弄清楚,这是非常令人沮丧的。查找单元格数组中的元素(逻辑0或1)

举例来说,如果我有这样的:

XYZ 
DHU 
EYU 
XYZ 
XYZ 

然后我需要的列向量是这样的:

1 
0 
0 
1 
1 

我欣赏的帮助。周末愉快。

回答

3

您应该能够使用strcmp

s1 = 'XYX'; 
s2 = {'XYZ';'DHU';'EYU';'XYZ';'XYZ'}; 

tf = strcmp(s1,s2) 
+0

谢谢@scrappedcola – kits

2

因为所有的细胞组成的三个字母,你可以将它们转换为字符数组char()然后用bsxfun的比较,像这样 -

>> A = {'XYZ';'DHU';'EYU';'XYZ';'XYZ'}; 
>> all(bsxfun(@eq,char(A),'XYZ'),2) 
ans = 
    1 
    0 
    0 
    1 
    1