:
Örneğin, myArray(3,1) == 'ABC'
bana bir hata verir.
(Düzenli parantezler), durumunuzda bir dizgi içeren geçerli hücresini dizinlerine ekler. Ayrıca, dizelerin varlığını kontrol etmek için strcmp veya belki strfind kullanmanızı öneririz.
Dolayısıyla bu kullanın: diğer bilgiler için
strcmp(myArray{3,1},'ABC')
kontrol here hücre diziler içine indeksleme hakkında. Bu operatörü kullanarak dizeleri böler ve bunu oluşturan her harfi karşılaştırdığı için strcmp
aksine amacıyla
bir hücre diziye dizeleri bulmak için mantıklı ==
Kullanma (yorumların ardından)
DÜZENLEME, güvenli değil ve tüm bu dizgiyi kontrol eder. Biz dizeleri bu hücre dizisinde ==
uygularsanız aşağıdaki şekilde
myArray = {'A' 'B' 'ABC' 'CBA' 'ABC'}.'
myArray =
'A'
'B'
'ABC'
'CBA'
'ABC'
:
Check_31 = myArray{3,1} == 'ABC'
Check_41 = myArray{4,1} == 'CB_'
Matlab bu 2 mantıksal vektörleri döndürür
ben myArray
bazı dizeleri koymak bu kodu göz önünde bulundurun:
Check_31 =
1 1 1
Check_41 =
1 1 0
Gördüğünüz gibi, karakter "_", {4,1} hücresinde bulunan dizenin son öğesi değil.
Check_ABC = strcmp(myArray,'ABC')
Biz de mantıklı bir vektör olsun, ama bu:; (bazı dize mevcut olup olmadığını biz kontrol etmek dizine belirli hücreleri gerekmez bütün hücre dizisinde)
Şimdi strcmp
kullanırsanız hücrenin içindeki dizeyi oluşturan 3 harfe değinmeyen, ancak hücre dizisinin kendisine atıfta bulunan ve 'ABC' bulunup bulunmadığı. 'ABC' hücrelerine {3,1} ve {5,1} gerçekten de mevcut olduğu için, mantıklı
Check_ABC =
0
0
1
0
1
: Sonuç şudur.
Umut daha açık!
myArray {3,1} == 'ABC' iyi çalışıyor, ancak bunu bir döngüde yaparsam, örneğin myArray {i, 1} == 'ABC' (i) 'nin üzerinde döngü yapmaz. Matris boyutlarının kabul etmesi gerektiğini söylüyor. Neden çalışmıyor ve neden strcmp'i kullanmak zorundayız? – user107986
Peki ya strcmp (myArray {i, 1}, 'ABC')? – JaBe
== ile karakter dizisinin her bir öğesini {i, 1}, sağ taraftaki karakter dizisi 'ABC' ile test edin. 'XYZ' ile karşılaştırmak için == 'ABC' [0 0 0] verir ancak 'XY' == 'ABC' hata verir, çünkü boyutlar kabul etmez (2 ile aynı değil). – JaBe