2015-08-15 102 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