String Karşılaştırma (strcmp) – MATLAB

Özellikle if statement yazacağınız zaman, stringler üzerinden koşul oluşturursanız karşılaşacağınız ilk sorun string boyutundan dolayı yaşanan hatadır. MATLAB, genel mantık olarak gelen string tipi input ile if statementında yer alan koşulda vector boyutuna bakarak kıyas yapmaktadır. String karşılaştırma konusunda kullandığımız strcmp fonksiyonu ve detaylarına bakalım.

Sizler için hata mesajı ile karşılaşacağınız bir kod paylaşıyorum. Bu kodu çalıştırdığınızda Command Window’da bir error oluşacak ve işlem yapılmayacaktır.

Bu kodu MATLAB’te çalıştırdığınız zaman bir hata ile karşılaşacaksınız. Öncelikle karşılaşılan hatanın temelinde string vektörünün boyut sorunu yer almaktadır. İlk denemenizde input alanın ‘kadikoy’ yazarsanız, doğru sonuç çıktı olarak gelecektir. Fakat ‘besiktas’ yazarsanız bir hata görürsünüz. Bunun sebebi ise vektör boyutudur. Sistem, karşılaştırma yaparken harf harf ilerler. İlk olarak k ile b harflerini karşılaştırır ve true – false döndürür. Sonra ikinci harfe geçer ve bu şekilde ilerler. Kadıköy’ün son harfi olan y ile Beşiktaş’taki a harfini kıyasladıktan sonra inputta yer alan son harf yani s’ye bakar. Fakat if statement’ında yer alan kelimenin 8. harfi olmadığı için kıyas yapamaz ve hata döndürür.

Sorunu çözmek için strcmp fonksiyonundan faydalanacağız. Bu fonksiyonun temel amacı iki kelime arasında kıyas yapmak ve true – false değerleri döndürmektir.

OKUMALISIN!  Table Veri Tipi ve Table Fonksiyonu - MATLAB

Yukarıdaki kod ile amacımıza ulaşmış oluyoruz. Strcmp fonksiyonunda, ilce kısmı bizim input değişkenimizken, ‘kadikoy’ kısmı ise if statementında karşılaştırılan değerdir ve bu iki kıyas sonucunda true (yani aynı) değeri döndüğünde işlemi yapmaktadır. Eğer strcmp işleminde false değeri dönerse else’de yer alan işlem yapılır.

1 Star2 Stars3 Stars4 Stars5 Stars (2 oylama, average: 3,00 out of 5)
Loading...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir