23 Aralık 2013 Pazartesi

Çalışan Ama Doğru Sonuçlar Üretmeyen MATLAB Programlarında Hataların Ayıklanması

Yazdığımız bilgisayar programları bir hata nedeniyle ya hiç çalışmazlar ya da çalışırlar ama beklediğimiz sonuçları/çıktıları üretmezler. Bir hata vererek çalışmayan MATLAB programlarındaki sorunların giderilmesine yönelik yapılabilecekleri irdeleyelim. çalıştığı halde içerdiği mantıksal (geliştirilen veya bilgisayar programına dönüştürülmüş algoritmadan, döngü değişkeninin sınır değerlerinin yanlış belirlenmesinden, if veya while deyimlerinde kullanılan koşulların yanlışlığından kaynaklanabilecek vs.) hatalar yüzünden beklenilen sonuçları üretmeyen programlarda sorunun kaynağını bulmanın standart ve kolay bir yolu maalesef yoktur. Bu tür durumlarda hata ayıklama (debugging) adı verilen işleme başvurulur. MATLAB'in de metin düzenleyicisi penceresi üzerinden bizlerin kullanımına sunduğu bir hata ayıklama modu mevcuttur. Bu mod, bizlerin programımızın herhangi bir satırına bir kesme noktası (breakpoint) koyabilmesine imkan tanır. Programın kesme noktası konulan satırı öncesindeki bölümü bilgisayar tarafından işletilir ve kesme kesme noktasına ulaşıldığında kontrol bilgisayar tarafından kullanıcıya devredilir. Kontrolü devralan kullanıcı ise programı satır satır işletir, işletilen herhangi bir satır sonrası program akışının nereye kayacağını ve hangi sonuçlar üretileceğini not alır. Nihayetinde o satırı sanki kendisi MATLAB yorumlayıcısıymış gibi işletir ve gerçek durumla beklentilerini karşılaştırarak sorunu bulmaya çalışır. Kullanılan bu hat ayıklama yöntemi, aynı zamanda nasıl çalıştığını veya kodlandığını tam olarak anlayamadığımız programlarla ilgili bizlere ipuçları verme noktasında de oldukça faydalıdır. Şimdi MATLAB ile hata ayıklamanın nasıl yapılabileceğini adım adım öğrenelim:
ADIM 1: İçerisindeki hataları açıklayacağınız programı düzgün çalışma dizini penceresi üzerinde çift tıklayarak açınız.
ADIM 2: Programınızın metin düzenleyicisi penceresi üzerinde açıldığından emin olunuz.
ADIM 3: Çalışma Alanı penceresinin açık olduğundan emin olunuz.
ADIM 4: Komut penceresinde clear komutunu çalıştırarak Çalışma Alanı penceresini temizleyiniz, yani tanımlı bütün değişkenleri bellekten siliniz.
ADIM 5: Komut penceresinde clc komutunu çalıştırarak komut penceresini temizleyiniz.
ADIM 6: Metin düzenleyicisi penceresinin sol tarafında programın satır numaraları yer alır. Kontrolü devralmak istediğiniz satırın satır numarasının sağındaki tire karakterini (-) tıklayınız ve onun içi dolu kırmızı bir yuvarlağa dönüşmesini sağlayınız.
ADIM 7: Komut penceresine gidiniz ve programınızı çalıştırınız. Komut penceresindeki >> sembolünün K>> formuna dönüştüğünü göreceksiniz. Bu sizin başarıya hata ayıklama moduna geçtiğinizin işaretidir.
ADIM 8: Kesme noktasında bilgisayar tarafından size devredilen kontrolü ele alınız ve F10 tuşu sayesinde adım adım ilerleyiniz. (Alt programlar içerisinde dallanmak için F11'i kullanınız.)
ADIM 9: Kesme noktasının yanında yeşil bir okun varlığına ayrıca dikkat ediniz ve F10 tuşuna bastığınızda bu yeşil okun program akışına göre yeni pozisyonuna ilerlediğini göreceksiniz.
ADIM 10: F10 tuşuna basmadan önce bu okun nerede olduğuna dikkat ediniz ve F10 tuşuna bastığınızda hangi satıra gideceğini kestirmeye çalışınız.
ADIM 11: Çalışma Alanı penceresi üzerinde var olmayan bir değişkenin sırası geldiğinde nasıl sıfırdan oluşturulduğuna ve var olanın değerinin ise nasıl güncellendiğine dikkat ediniz. Farenizi programınızda bir değişkenin üzerine taşıdığınızda onun mevcut değerinin ekranda göründüğünü test ediniz.
ADIM 12: İşiniz bittiği zaman programınızdaki kesme noktasını (içi dolu kırmızı yuvarlağı) bir kez tıklayınız ve onun yerine tire (-) karakterine dönüştürünüz.
ADIM 13: Komut penceresi üzerinde return komutunu çalıştırınız ve hata ayıklama modundan çıkınız. Böylece K>> sembolünün yeniden >> haline dönüştüğünü göreceksiniz.

20 Aralık 2013 Cuma

switch-case YAPISI İLE ÇOKLU SEÇİMİN KOLAYLAŞTIRILMASI

switch-case yapısı sayesinde bir değişkenin farklı değerleri için ayrı ayrı işler yapabilmek oldukça kolay hale gelir. switch-case kullanılarak yazılan herhangi bir bilgisayar programı aslında if-elseif-else-end (elseif sayısı genelde birden fazladır.) ile de gerçekleştirilebilir olsa da programımızı daha okunabilir ve anlaşılabilir kıldığı için genellikle tercih edilen switch-case yapısıdır. Aşağıda bu durumu özetleyen iki örneğe yer verilmiştir:


Yukarıdaki iki örnek input komutuyla kullanıcıdan klavye yoluyla alınacak herhangi bir karakterin (input komutuna verilen 's' parametresine dikkat ediniz.) MATLAB'de tanımlı bir aritmetik operatör olup olmadığını iki farklı yolla tespit etmek için verilmiştir. if-elseif-else-end versiyonunda eşitlik testini gerçekleştiren == operatörünün solunda yer alan değişken switch-case versiyonunda switch anahtar kelimesinin sağında yer almıştır. Öte yandan if-elseif-else-end versiyonunda her bir eşitlik testinde == operatörünün sağında yer alan ifadeler switch-case yapısında case anahtar kelimesinin sağında kullanılmıştır. switch-case yapısında kullanılan otherwise anahtar bir kelimedir, if-elseif-else-end versiyonundaki else-end bloğuna karşılık gelir ve case ile teste tabi tutulmayan bütün durumları karşılamak üzere kullanılır. switch-case yapılarında her bir switch anahtar kelimesine karşılık bir end anahtar keşlimesi muhakkak kullanılmalıdır.

Şartlı Deyimler ve Uygulamalar (Örnekler)


if elseif yapısıyla ilgili bazı uygulamalar
(Uygulamaların örnek çözüm videoları ilerleyen günlerde eklenecektir.)
  • input komutu ile kullanıcıdan klavye yoluyla aldığı bir sayının mutlak değerini hesaplayan ve fprintf komutuyla ekrana basan bir MATLAB programını SayininMutlakDegeriniHesapla.m adındaki düzyazı m-dosyasının içerisine kaydediniz.
sayi=input('Lutfen mutlak degeri hesaplanacak sayiyi giriniz=');
mutlakDeger=sayi;
if sayi<0
     mutlakDeger=sayi*(-1);
end
fprintf('Girilen sayinin mutlak degeri = %g\n',mutlakDeger);
  • input komutuyla kullanıcıdan aldığı iki sayının (pay ve payda) oranını hesaplayan ve fprintf komutuyla ekrana basan bir MATLAB programını IkiSayininOraniniHesapla.m dosyası içerisine yazınız. Programınız payda sıfır girildiğinde ekrana disp komutuyla 'Uzgunum! Sifira bolum hatasi var.' mesajını yazdırmalı.
pay=input('Lutfen birinci sayiyi giriniz=');
payda=input('Lutfen ikinci sayiyi giriniz=');
if payda==0
     disp('Uzgunum! Sifira bolum hatasi var.');
else
     oran=pay/payda;
     fprintf('Girilen sayilarin orani= %g\n', oran);
end
  • input komutuyla kullanıcıdan klavye yoluyla aldığı iki sayı arasındaki ilişkiyi (eşitlik,büyüklük,küçüklük) belirleyen ve fprintf komutuyla ekrana basan bir MATLAB programını IkiSayiArasindakiIliskiyiBelirle.m dosyası içerisine kaydediniz.
sayi1=input('Lutfen birinci sayiyi giriniz=');
sayi2=input('Lutfen ikinci sayiyi giriniz=');
if  sayi1==sayi2
      fprintf('Girilen sayilar eşittir.');
elseif sayi1<sayi2
     fprintf('Birinci sayi ikinci sayisan kucuktur.');
else
    fprintf('Birinci sayi ikinci sayidan buyuktur.');
end
şeklinde verilen ikinci derecede bir denklemin köklerinin hesaplayan ve ekrana basan bir MATLAB programını yazınız
A=input('Lutfen A katsayisini giriniz=');
B=input('Lutfen B katsayisini giriniz=');
C=input('Lutfen C sabitini giriniz=');
delta=B^2-4A*C;
if A==0
    disp('Bu denklem ikinci dereceden bir denklem degil.');
elseif delta<0
    disp('Denklemin reel koku yok.');
elseif delta==0
    disp('Denklemin tek koku var.');
    fprintf('Kok= %f\n',-B/(2*A));
else
    disp('Denklemim iki tane koku var.');
    X1=(-B+sqrt(delta))/(2*A);
    X2=(-B-sqrt(delta))/(2*A);
    fprintf('Kok1 = %f \n',X1);
    fprintf('Kok2 = %f \n',X2);
end
  • input komutuyla kullanıcıdan klavye yoluyla aldığı üç sayının en küçüğünü bularak fprintf komutuyla ekrana basan MATLAB programını yazınız..
sayi1=input('Lutfen birinci sayiyi giriniz=');
sayi2=input('Lutfen ikinci sayiyi giriniz=');
sayi3=input('Lutfen ucuncu sayiyi giriniz=');
enKucuk=sayi1; %En küçük sayı olarak birinci sayıyı varsaydık
if sayi1>sayi2
    enKucuk=sayi2;
end
if sayi2>sayi3
    enKucuk=sayi3;
end
fprintf('Girilen sayilarin en kucugu = %d\n',enKucuk);
  • input komutuyla kullanıcıdan aldığı bir ay numarasını kullanarak o ayın kaç günden oluştuğunu bulan ve disp komutuyla ekrana basan bir MATLAB programını yazınız.
ayNo=input('Lutfen gun sayisini ogrenmek istediginiz ay numarasini (1-12) araliginda giriniz:');
if ayNo==1||ayNo==3||ayNo==5||ayNo==6||ayNo==8||ayNo==10||ayNo==12
    disp('Girilen ay 31 gunden olusmaktadir.');
elseif ayNo==2
    disp('Subat ayi 28 gundur.');
elseif ayNo==4||ayNo==6||ayNo==9||ayNo==11
   disp('Girilen ay 30 gunden olusmaktadir.');
else
   disp('Lutfen 1 ile 12 arasinda bie deger giriniz.');
end

Şartlı Deyimler ve Uygulamalar

if ŞARTLI DEYİMİ, if-else ŞARTLI DEYİMİ ve if-elseif-else ŞARTLI DEYİMİ
if şartlı deyimi, programcı tarafından belirlenen ve sadece 1 (true) veya 0 (false) değerlerinden birini sonuç olarak üretecek bir koşula bağlı olarak farklı işlemlerin gerçekleştirlmesine yardımcı olan bir programlama yapısıdır. Bu tanımdan hareketle, if şartlı deyimlerinde koşul olarak kullanılmak üzere, ilişkisel ve mantıksal operatörlerden faydalanabileceğimizi rahatlıkla söyleyebiliriz. MATLAB’de, if deyiminin istenildiğinde program akışını değiştirmek amacına hizmet eden üç farklı kullanım şekli vardır:
if koşul
              işlem(ler)
end
1.kullanımda if ve end kelimeleri MATLAB için anahtar kelimelerdir. koşul, 1 (true) sonucu ürettiğinde if ile end arasındaki işlem(ler) gerçekleştirilir yani if bloğunun (gövdesinin) içerisine girilir. koşul, 0 (false) ürettiğinde ise if bloğunun içine girilmez ve program akışı end deyiminin bir alt satırına yönlendirir.
if koşul
      işlem(ler)
else
     işlem(ler)
end
2.kullanımda if, else ve end kelimeleri MATLAB için anahtar kelimelerdir. koşul, 1 (true) sonucunu ürettiğinde if ile else arasındaki işlem(ler), koşul0 (false) sonucunu ürettiğinde ise else ile end arasındaki işlem(ler) gerçekleştirilir.
if koşul1
    işlemler
elseif
    işlemler
else
    işlemler
end
3.kullanımda if, elseif, else ve end kelimeleri MATLAB için anahtar kelimelerdir. koşul1, 1(true) sonucunu ürettiğinde if ile elseif arasındaki işlemler gerçekleştirilir ve program akışı end deyiminin bir alt satırına yönlendirilir. koşul1, 0(false) sonucunu ürettiğinde ise koşul2’nin durumuna bakılır. Benzer şekilde koşul2, 1(true) sonucu ürettiğinde elseif ile else arasındaki işlemler gerçekleştirlir ve program akışı end deyiminin bir alt satırna yönlendirilir. koşul2, 0(false) sonucunu ürettiğinde ise else ile end arasındaki işlemler gerçekleştirilir. Bu kullanımda elseif’lerin sayısı duruma göre istenildiği kadar artıılabilir.
İPUCU: Kullanılan her if deyiminin muhakkak bir end karşılığı olmalıdır. Ayrıca if deyimi ile koşul arasında en az bir boşluk bırakılmalıdır.
İPUCU: sayi adlı değişkenin sadece 1 veya 0 değeri saklayan bir değişken olduğunu kabul edelim. Bu durumda if sayi==1 deyimi yerine doğrudan if sayi deyimini ve benzer şekilde if sayi==0 deyimi yerine de doğrudan if~sayi deyimini kullanabiliriz.
İPUCU: MATLAB metin düzenleyicisinde if deyiminin yanına koşul yazılıp ENTER tuşuna basıldığında imleç TAB kadar sağa otomatik olarak kaydırılır. Lütfen bu duruma müdahele etmeyiniz. Bu işlem editör tarafından maksatlı olarak, programın anlaşılmasını kolaylaştırmak amacıyla gerçekleştirlmektedir.

İlişkisel ve Mantıksal Operatörler

  1. İLİŞKİSEL OPERATÖRLER
İlişkisel operatörler, işlenenleri arasındaki eşitlik,eşitsizlik,büyüklük veya küçüklük türünden ilişkileri belirleyen operatörlerdir. MATLAB'de ilişkisel operatörler;
              ==   Eşit Mi?
             ~=    Eşit Değil Mi?
               >    Büyük Mü?
             >=    Büyük veya Eşit Mi?
              <     Küçük Mü?
             <=   Küçük veya Eşit Mi?
İlişkisel Operatörlerin Öncelik Sıraları
  • İlişkisel operatörler aritmetik operatörlerden daha düşük bir işlem önceliğine sahiptirler.,
  • Örneğin komut penceresinde 3+4<7-5 şekline çalıştırılacak bir MATLAB deyimi arka planda önce 7<2 formuna dönüştürülür  ve ilişkisel test (küçüklük testi) daha sonra gerçekleştirilir.
  • Benzer şekilde i+j==10 gibi bir eşitlik testi, öncelikle hesaplanan i+j aritmetik işleminin sonucu ile 10 sayısı arasında gerçekleştirilir.
  • Yukarıdaki deyimler, karışıklığa meydan vermemek için (3+4)<(7-5) ve (i+j)==10 formlarına sokulabilirler.
     2.   MANTIKSAL OPERATÖRLER
Mantıksal operatörler de ilişkisel operatörler gibi sonuç olarak true ve false değerlerini üretirler.
        a&&b    VE (AND)
        a | | b     VEYA (OR)
        ~a          DEĞİL (NOT)
Mantıksal Operatörlerin Doğruluk Tabloları
A
B
A&&B
0
0
0
0
1
0
1
0
0
1
1
1
A
B
A||B
0
0
0
0
1
1
1
0
1
1
1
1
A
~A
0
1
1
0
İlişkisel ve mantıksal operatörler her zaman, bool tipinde (yani 1 (true) veya 0 (false) değerinde, başka bir ifadeyle sadece iki değerli) bir sonuç geriye döndürürler. Dolayısıyla if ve while deyimleri ile birlikte karar verme amacıyla kullanılabilirler.

Bazı Temel Uygulamalar


  • input komutuyla kullanıcıdan klavye yoluyla aldığı 2 sayının geometrik ortalamasını hesaplayan ve bu ortalamayı fprintf komutuyla ekrana basan MATLAB programını yazınız.
  1. Bu işlemi kolay bir şekilde yazabilmek için öncellikle editörü açıyoruz.
  2. Ana ekranda >> edit yazarak ENTER tuşuna bastığımızda editör açılacaktır.
sayi1=input('Lutfen 1. sayiyi giriniz:');
sayi2=input('Lutfen 2. sayiyi giriniz:');
geoOrt=sqrt(sayi1*sayi2);
fprintf('Girilen sayilarin geometrik ortalamasi :%g\n',geoOrt);

  •  input komutuyla kullanıcıdan klavye yoluyla aldığı 3 sayının aritmetik ortalamasını hesaplayan ve bu ortalamayı disp komutuyla ekrana basan MATLAB programı yazınız.
İlk örnekte yapılan 1. ve 2. adımlar tekrar edilir.
sayi1=input('Lutfen 1. sayiyi giriniz:');
sayi2=input('Lutfen 2. sayiyi giriniz:');
sayi3=input('Lutfen 3. sayiyi giriniz:');
aOrt=(sayi1+sayi2+sayi3)/3;
disp(['Girilen sayilarin aritmetik ortalamasi: ' num2str(aOrt) ' dir.']);

  •  input komutuyla kullanıcıdan klavye yoluyla aldığı bir dairenin yarı çap değerini kullanarak bu dairenin çevresini ve alanını hesaplayan ve fprintf komutuyla ekrana basan MATLAB programını yazınız.
İlk örnekte yapılan 1. ve 2. adımlar tekrar edilir.  
yaricap=input('Lutfen hesaplama yapilacak dairenin yaricap degerini giriniz:');
cevre=2*pi*yaricap;
alan=pi*(yaricap^2);
fprintf('Yaricapi girilen dairenin cevresi: %g\n',cevre);
fprintf('Yaricapi girilen dairenin alani: %d\n',alan);


  • input komutuyla kullanıcıdan klavye yoluyla aldığı bir üçgenin taban uzunluğu ve bu uzunluğa ait yüksekliği kullanarak üçgenin alanını hesaplayan ve disp komutuyla ekrana basan MATLAB programını yazınız.
İlk örnekte yapılan 1. ve 2. adımlar tekrar edilir. 
taban=input('Lutfen taban uzunlugunu giriniz:');
yukseklik=input('Lutfen yukseklik degerini giriniz:');
alan=(taban*yukseklik)/2;
disp(['Girilen degerlerle hesaplanan ucgenin alani: ' num2str(alan) ' dir.']);

  •  Kenar uzunlukları a,b,c olan bir üçgenin alanı Heron Formülü kullanılarak şu şekilde hesaplanır. Karekök(u(u-a)(u-b)(u-c)),u=(a+b+c)/2
  • input komutuyla kullanıcıdan klavye yoluyla elde ettiği a,b,c değerlerini kullanarak üçgenin alanını hesaplayan ve disp komutuyla ekrana basan MATLAB programını yazınız.
İlk örnekte yapılan 1. ve 2. adımlar tekrar edilir.  

a=input('Ucgenin a kenar uzunlugu:');
b=input('Ucgenin b kenar uzunlugu:');
c=input('Ucgenin c kenar uzunlugu');
u=(a+b+c)/2;
alan=sqrt(u(u-a)(u-b)(u-c));
disp(['Girilen degerlerle hesaplanan ucgenin alani: ' num2str(alan) ' dir.']);


disp ve fprintf Komutları ile Ekrana Bilgi Yazırma

Bir önceki konuda input komutuyla klavye üzerinden MATLAB programlama ortamına nasıl veri aktarılacağını gördük.
Bu konuda ise disp ve fprintf komutları yardımıyla ekrana nasıl bilgi yazdırılacağını öğreneceğiz.
** disp Komutuyla Ekrana Metin Yazdırma
>>disp('Uzgunun sifira bolum hatasi var.');
Uzgunum sifira bolum hatasi var.
>>disp('Uzgunum! Hatali giris yaptiniz.');
Uzgunum! Hatali giris yaptiniz.
** disp Komutuyla Ekrana Sayısal Değer Yazdırma
>>skaler=16;
>>satirVektoru=[12  -4  36  25  47];
>>matris=[1  2;3  4];
>>skaler
skaler=
    16
>>disp(skaler);
16
>>disp(satirVektoru);
12  -4  36  25  47
>>disp(matris);
1   2
3   4
** disp Komutu ile Ekrana Metinleri ve Sayısal Değerleri Birlikte Yazdırma
>>tahmin=input('Lutfen bir sayi giriniz:');
Lutfen bir sayi giriniz:  12
>>disp(['Girdiginiz sayi: ' num2str(tahmin) ' dir.']);
Girdiginiz sayi 12 dir.
** fprintf Komutu İle Ekrana Bilgi Yazdırma
Genel Kullanım
fprintf('Ekrana Basilacak Aciklanma %X\n',deger);
Burada %X Kısmında Kullanabileceğimiz Seçenekler;
             %c : deger'in tek bir karakter olduğunu gösterir.
             %s : degeri'in bir karakter dizisi (string) olduğunu gösterir.
             %d : deger'in bir tam sayı olduğunu gösterir.
             %f : deger'in bir ondalıklı sayı olduğunu gösterir.
             %g : deger'i mümkü olan en kompakt forma sokar.
Diğer yandan;
             \n : imleci bir alt satırın başına götürür.
             \t : imleci bir TAB sağa kaydırır.
* fprintf Kullanımına Örnekler
>> karakter = 'd';
>> isim = 'deniz';
>> tamsayi=25;
>>ondalikliSayi= 3.1416;
>> fprintf('Tanimlanan karakter :%c ' , karakter);
Tanimlanan karakter : d >>
>> fprintf('Tanimlanan karakter dizisi: %s\n,isim);
Tanimlanan karakter dizisi: deniz
>>fprintf('Tanimlanan tam sayi: %d\n',tamsayi);
Tanimlanan tam sayi:25
>>fprintf('Tanimlanan ondalikli sayi: %f\n',ondalikliSayi);
Tanimlanan ondalikli sayi : 3.1416
*** disp ve fprintf Arasındaki Farklar
disp komutu ekrana çıktı verdikten sonra bir alt satıra otomatik olarak atlar. fprintf komutunu bir alt satıra götürebilmek için ise \n kullanılmalıdır.
Ayrıca disp komutu satır veya sütun vektörleri ile matrisleri ekrana kolayca yazdırabilirken aynı işlemi fprintf ile yapabilmek daha çok işlem gerektirmektedir.

Değişken Türleri ve Değer Atamaları

Matlab değişkenlerine değer olarak aşağıdakilerden herhangi birisi alınabilir:
  • Matris
  • Satır Vektörü
  • Sütun Vektörü
  • Karakter Dizisi (String)
  • Skaler
Satır vektörü örnek yazım : A=[4 -15 3 27]
Sütun vektörü örnek yazım: B=[4;1;123]
MATLAB PROGRAMLARINA KLAVYEDEN VERİ AKTARIMI
''input'' komutu yardımıyla bir MATLAB programı içerisinde değerlendirilmek üzere kullanıcıdan klavye yoluyla bir veri alınır ve bu veri bir değişkene atanır.
Örnek;
>> yas=input('Lutfen Yasinizi Giriniz:')
Lutfen Yasinizi Giriniz: 27
yas =
       27
**input Komutu İle Klavyeden Metinsel Veri Temini
>>isim=input('Lutfen isminizi giriniz:','s')

Matlab'de Deyimler ve Bileşenleri

MATLAB komut penceresinden doğrudan çalıştırılabilen yada bir MATLAB dosyası içerisine kaydedilebilen ve MATLAB tarafından yorumlanabilen her  şey MATLAB deyimidir. MATLAb deyimleri değişkenler, rakamlar, operatörler ve fonksiyonlardan oluşturulurlar.
Değişkenler: eyimler içerisinde sayısal değerlerin yerini alan ifadelerdir. MATLAB bir değişken ile karşı karşıya geldiğinde, otomatik olarak bu değişken oluşturulur ve yeteri kadar bellek ayrılır. Eğer değişken daha önceden tanımlı ise MATLAB onun içeriğini değiştirir ve gerekirse yeni bellek ayırır.
Örneğin, >> x=50
komut saturundan işletildiğinde MATLAB 'x' adında bir değişken oluşturur ve 50 değerini bu değişkene atar.
Diğer bilgisayar dillerinde olduğu gibi MATLAB'in da değişken isimleri konusunda bazı kuralları vardır.
Değişken Tanımlama Kuralları
  1. Değişken isimleri daima bir harf ile başlamalıdır. İlk harfi başka harfler, rakamlar ve alt çizgiler (_) izleyebilir. Örneğin, '1sayi' uygun bir değişken ismi değilken, sayi_1 kullanılabilir bir değişken adıdır.
  2. Değişken isimleri noktalama işaretleri ve boşluklar barındırmamalıdır.
  3. Değişken isimleri içerisinde Türkçe karakterler olan ı,ö,ü,ğ,ç,ş kullanılmamalıdır.
  4. Değişken isimlerinin küçük ve büyük harf kullanımına duyarlı olduğu unutulmamalıdır. orta, Orta,ORTA veya orTa adlı değişkenler MATLAB için farklı değişkenlerdir.
  5. Değişken isimleri en fazla 63 karakter içerebilir ve bundan fazlası MATLAB tarafından dikkate alınmaz.
Değişkenlerin İsimlendirilmesi
  • Değişkenler ve daha sonraki bölümlerde ele alacağımız fonksiyonlar muhakkak kullanım amaçları dikkate alınarak ve anlamlı bir şekilde isimlendirilmelidir.
  • Örneğin kullanıcıdan klavye yoluyla alınacak ve ortalamaları hesaplanacak üç sayı, a,b,c veya x,y,z gibi jenerik değişken isimleriyle değil sayi1,sayi2,sayi3 gibi anlamlı isimlerle temsil edilmelidir.
  • Bir zorunluluk olmasa bile yazılan bir programın anlaşılabilirliğini artırmak adına değişkenler ve fonksiyonlar adlandırılırken bazı notasyonlardan faydalanılır.
Deve ve Paskal Notasyonları
  • Değişken tanımlamalarında Deve Notasyonundan (Camel Notation) ve dosya isimlendirmelerinde Paskal Notasyonundan (Pascal Notation) faydalanılabilir.
  • Deve Notasyonu ile tanımlanmış değişken isimlerine bir kaç örnek olarak sayi1, enKucuk, bankaHesapNo ve basamakSayisi verilebilir.
  • Paskal Notasyonu ile tanımlanmış dosya isimlerine örnek olarak AsalSayiMi.mve ToplayarakCarpma.m verilebilir.
  • .m daha sonra da öğreneceğimiz üzere MATLAB programlama dosyalarının uzantısıdır.

Bilgisayarla Problemin Çözüm Aşamaları

BİLGİSAYARLA PROBLEM ÇÖZÜMÜNÜN AŞAMALARI
  • ·         Analiz
  • ·         Algoritma Geliştirme
  • ·         Akış Şeması Çizimi
  • ·         Programlama Dili Seçimi
  • ·         Programın Yazılması
  • ·         Derleme
  • ·         Çalıştırma
  • ·         Test
ANALİZ: Çözülmesi istenen problemin tamamen anlaşılmasını sağlayacak ön çalışmalardır.
ALGORİTMA GELİŞTİRME: Problemi çözecek adımların sıralı olarak ifade edilmesidir.
AKIŞ ŞEMASI ÇİZİMİ: Geliştirilen algoritmanın şekillerle ifade edilmesidir.
PROGRAMLAMA DİLİ SEÇİMİ: Geliştirilen algoritmayı kolay bir şekilde bilgisayar ortamına aktaracak bir bilgisayar programlama dilinin seçilmesidir.
PROGRAMIN YAZILMASI: Seçilen programlama dilinin kuralları kullanılarak programın yazılması aşamasıdır.
DERLEME: Programlama dili komutlarına dönüşmüş çözümün yazım hatalarının olup olmadığının kontrol edilmesi ve programın makina dili komutlarına çevrilmesidir.
ÇALIŞTIRMA: Derlenmiş programın işletim sistemi tarafından hard diskten alınarak belleğe taşındığı ve programın ilk komutunun adresinin Merkezi İşlem Birimine bildirildiği aşamadır.
TEST: Programın mantıksal olarak test edildiği ve muhtemel her giriş için doğru sonuçlar üretip üretmediğinin kontrol edildiği aşamadır.
PROGRAM (BİLGİSAYAR PROGRAMI) NEDİR?
Problem çözümü kısmında anlatılan adımlar uygulandıktan sonra ortaya çıkan ve sorununuzu bilgisayar ortamında çözen ürüne program denir.
PROGRAMLAMA (BİLGİSAYAR PROGRAMLA) NEDİR?
Problem çözümünde anlatılan adımların tümüne birden programlama denir.
PROGRAMLA DİLİ NEDİR?

Bir problemin algoritmik çözümünün bilgisayarda yazılmasını sağlayan kuralla dizisidir.
MATLAB, Delphi, Pascal, Lisp, C, C++, C#, Visual Basic, Java sayabileceğimiz bazı pogramlama dillerindendir.

Hakkında

MATLAB
MATLAB bilim adamları ve mühendislere, matislere dayalı problemleri Fortan ve C gibi dillerden farklı olarak program yazmaksızın çözmede kullanılmak üzere bir sayısal hesaplama kütüphanesi (MATris LABoratuvarı) olarak tasarlanmıştır. Daha sonraları ise bir çok toolbox eklenerek geliştirilmiştir. MATLAB 1970'lerin sonunda Cleve Moier tarafından yazılmıştır. Cleve Moier aynı zamanda 'The MathWorks' firmasının da kurucusudur.
MATLAB bir yorumlayıcıdır. Bir derleyiciye ihtiyaç duyan programlama dillerinden farklı olarak bir MATLAB programı çalıştırıldığında satır satır makina diline çevrilir.
MATLAB Programının Tipik Kullanım Alanları
  • Algoritma geliştirme ve kod yazmada,
  • Matematiksel hesaplama yapmada,
  • Lineer cebir, istatistik, Fourier Analizi, filtreleme, optimizasyon, sayısal integrasyon vb. konularda hazır matematik fonksiyonlara ulaşabilmede,
  • 2D ve 3D grafikler çizmede,
  • Modelleme ve simülasyon yapmada,
  • Grafiksel arayüz oluşturmada,
  • Veri analizi ve kontrolü gerçekleştimede.
MATLAB Programlama Ortamının Tanıtımı
MATLAB PROGRAMLAMA ORTAMI
  1. Başlat Menüsü (Start)
  2. Komut Penceresi (Command Window)
  3. Çalışma Alanı (Workspace)
  4. Çalışma Dizini (Current Folder)
  5. Komut Geçmişi (Command History)
  6. Metin Düzenleyicisi (Editor)
Komut Penceresi: MATLAB ile iletişim kurulan ana penceredir. MATLAB yorumlayıcısı, kullanıcıdan gelecek komutları kabul etmeye hazır olduğunu gösteren '>>' biçiminde simge görüntüler. Örneğin, 4*25+6*52+2*99 gibi basit bir matematiksel işlemi yapmak için
     >>4*25+6*52+2*99 ifadesini yazıp ENTER tuşuna basınız.
            ans=
                        610
Komut Satırında Yanlışların Düzeltilmesi: Klavyede yer alan ok tuşları komut satırında yapılan yanlışların düzeltilmesine imkan verir.
Sonucun Ekranda Görüntülenmesini Gizleme: Bir deyim yazıp ENTER tuşuna basınca sonuçlar ekranda otomatik olarak görüntülenir. Buna karşılık deyimin sonuna ';' ilave edilecek olursa yapılan hesaplamalar ekranda görüntülenmez.