在元胞数组中查找元素(逻辑 0 或 1)

Find elements in cell array (logical 0 or 1)

我有一个包含三个字母长的股票代码的单元格列向量。我需要创建一个长度与 returns 长度相同的列向量,当符号 XYZ 存在时为 1,不存在时为 0。我已经浪费了 2 个多小时试图解决这个问题,这非常令人沮丧。

例如,如果我有这个:

XYZ
DHU
EYU
XYZ
XYZ

那么我需要这样的列向量:

1
0
0
1
1

感谢您的帮助。祝周末愉快。

您应该可以使用 strcmp

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

tf = strcmp(s1,s2)

因为所有单元格都是三个字母组成的,所以可以用char() and then use bsxfun转成字符数组进行比较,比如-

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