HIZLI ÇALIŞAN ve AZ HAFIZA KULLANAN MATLAB PROGRAMI YAZMA: Matlab programlarında eğer döngüler kullanılıyor bunların içlerindeki komutların yapılması belirli bir süre alır. Matlab programlarının hızını arttırmak için eğer mümkünde döngü komutları kullanmadan vektörel işlemlerle aynı programı yazmaya çalışmalıyız. TIC Komutu: Matlab kronometresini sıfırlamak için kullanılır. TOC Komutu: Matlab kronometresinin değerini okumak için kullanılır. Örnek: Aşağıdaki programda for-döngüsü ile yazılan bir programın çalışması için toplam ne kadar süre gerektiğini hesaplanmaktadır. Yukarıdaki program çalıştırıldığında aşağıdaki sonucu elde ederiz. Şimdi yukarıdaki matlab programını vektörlerle yazalım ve geçen süreyi tekrar hesaplayıp karşılaştırma yapalım. 1
Yukarıdaki program çalıştırıldığında aşağıdaki sonucu elde ederiz. Her iki yazım için geçen süreleri kıyaslarsak, ilk yazım için 0.000940 saniye süreye ihtiyaç duyuldu. İkinci yazım için ise 0.000715 saniye kadar süreye ihtiyaç duyuldu. Görüldüğü üzere ikinci yazım tarzı programın daha hızlı çalışmasına neden olmaktadır. Önceden Hafıza Ayırma: Eğer matlab programlarında döngüler kullanılacaksa, programın işleyiş hızını arttırmak için sonuçların yazılacağı vektörlerin önceden tahsis edilmesi gerekmektedir. Aynı örnek üzerinden devam edecek olursak, aşağıdaki örnekte ilk örnektekinin aksine sonuçların yazılacağı vektör önceden zeros komutu ile tahsis ediliyor. Örnek: Hız konusu için vermiş olduğumuz örneği aşağıdaki gibi yazalım. 2
Yukarıdaki program çalıştırılırsa aşağıdaki sonuç elde edilir. Sonuçları tutan vektöre önceden tahsis yapmadan programı çalıştırırsak 0.000940 saniye kadar bir süre geçiyordu. Yukarıdaki sonuca nakarsak geçen süre önceden tahsis yapıldığında 0.000921 saniye olmaktadır. Yani programın çalışma hızı artmıştır. MATLAB da Grafik Çizme: Matlab da grafik çizme işi sürekli zamanlı sinyaller için plot() komutu ile ayrık zamanlı sinyaller için ise stem() komutu ile yapılır. Plot komutunun kullanımı şöyledir plot(x, y) burada x ve y eleman sayıları aynı olan iki vektördür. Diyelim ki x=[1 2 3 4] ve y=[2 4 5 8] olsun. Bu durumda plot(x, y) komutu ilk olarak x ve y vektörlerinin elemanlarını koordinat sisteminde karşılıklı olarak eşler ve koordinat noktalarını aşağıdaki gibi belirler 3
8 5 4 2 y 1 2 3 4 x Daha sonra ise bu koordinat noktalarını birleştirerek aşağıdaki gibi grafiği elde eder. y Örnek: Aşağıdaki programı inceleyiniz. 8 5 4 2 1 2 3 4 x Yukarıdaki matlab programı çalıştırıldığında aşağıdaki grafiği elde ederiz. 4
Yukarıdaki grafik incelenirse yatay eksenin 1 sayısından düşey eksenin de 2 sayısından başladığı görülür. 1 sayısı x vektörünün ilk elemanı 2 sayısı ise y vektörünün ilk elemanıdır. Eğer şekli dışarıya doğru zum yaparak grafiği daha net görmek istersek bunun için axis komutunu kullanabiliriz. Eğer plot komutu sadece plot(y) şeklinde kullanılırsa bu durumda MATLAB x vektörünü varsayılan değeri olan x=[1 2 3 ] şeklinde kabul eder ve plot(x, y) komutunu çalıştırır. Diğer bir değişle y vektörünün elemalarının koordinatlarını sıra numaralarına göre oluştutur ve grafiği çizer. AXIS Komutu: AXIS komutu grafiğin belirli yatay ve düşey eksen değerleri arasındaki kısmını görmek için kullanılır. AXIS komutunun genel kullanım kalıbı şöyledir: AXIS([x min x max y min y max ]) burada çizilen grafiğin x min x max ile y min istenilmektedir. y max arasındaki kısmının gösterilmesi 5
Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 6
Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 7
PLOT Komutuyla Grafikteki Koordinat Noktalarının Belirtilmesi: Plot komutunun daha genel bir kullanımı plot(x, y, s ) şeklindedir ve burada s çizilen grafiğin özelliklerini belirtmek amacı ile kullanılır ve en fazla üç adet en az bir karakterden oluşur. Eğer koordinat noktalarını belirgin bir şekilde belirtmek istiyorsak s harfi yerine aşağıdaki karakterlerden birisini koyarız Tablo-1 Koordinat noktalarını belirten simgeler o x circle x-mark + plus * star s d v ^ square diamond triangle triangle < triangle > triangle p h pentagram hexagram Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 8
Eğer çizilen grafikte belirgin bir şekilde belirtilen koordinat noktalarının birbirlerine doğru parçaları ile bağlanmasını istiyorsak plot(x, y, s ) komutundaki s değişkeni iki karakterden oluşur. İlk karakter bir önceki kısımda vermiş olduğumuz tablodan ikinci karakter ise aşağıdaki tablodan seçilir. Bu tabloda verilen her karakter çizilecek olarak doğru parçasının nasıl çizilmesi gerektiğini belirtir. Tablo-2 Doğru türleri - solid : dotted -. dashdot -- dashed 9
Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 10
Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. Eğer çizilecek doğruların renkli olmalarını istiyorsak plot(x, y, s ) komutundaki s değişkenine 3. bir karakter eklenir. Bu karakter Tablo 3 ten seçilir. 11
Tablo-3 Doğru renkleri b blue. g r c m y k w green red cyan magenta yellow black white Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 12
Yukarıdaki şekilde bir adet grafik çizilmiştir. Aynı şekil üzerinde birden fazla grafikde çizilebilir. Bu iş HOLD ON komutuyla yapılabilir. HOLD ON Komutu: HOLD ON komutu bir şekil üzerinde birden fazla grafiği tutmak için kullanılır. HOLD ON kullanılmazsa şeklin üzerinde en son çizilen grafik durmaya devam eder. Örnek: 13
Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. HOLD ON komutunu bir kere yazmamız bütün grafikleri aynı şekil üzerinde tutmamız için yeterlidir. Unutulmamalıdırki HOLD ON komutu plot komutundan sonra yazılmalıdır. Örnek:,, 14
Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. HOLD OFF Komutu: HOLD ON komutu bir kez yazılınca bütün çizilen grafikler şekil üzerinde durmaya devam eder. HOLD ON komutunu iptal etmek için HOLD OFF komutu kullanılır. Örnek: 15
Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. Herhangi bir şekilde yatay eksene düşey eksene ve şeklin başına etiketler koymak için XLABEL, YLABEL, ve TITLE komutları kullanılır. XLABEL, YLABEL, ve TITLE Komutları: XLABEL komutu şu şekilde kullanılır, XLABEL( Etiket Yazısı ). Eğer x eksenine yazacağımız etiketin renkli, kalın v.b. gibi özelliklere sahip olmasını istiyorsak bu durumda XLABEL komutunu biçiminde kullanmalıyız. YLABEL komutu şu şekilde kullanılır, XLABEL( Etiket Yazısı, özellik1, özellik2,.) YLABEL( Etiket Yazısı ). Eğer x eksenine yazacağımız etiketin renkli, kalın v.b. gibi özelliklere sahip olmasını istiyorsak bu durumda YLABEL komutunu YLABEL( Etiket Yazısı, özellik1, özellik2,.) 16
biçiminde kullanmalıyız. TITLE komutu şu şekilde kullanılır, TITLE ( Etiket Yazısı ). Eğer x eksenine yazacağımız etiketin renkli, kalın v.b. gibi özelliklere sahip olmasını istiyorsak bu durumda YLABEL komutunu biçiminde kullanmalıyız. Örnek: TITLE ( Etiket Yazısı, özellik1, özellik2,.) Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 17
XLABEL, YLABEL, ve TITLE Komutlarındaki etiketlerde altindis ve üstindis karakterleri kullanılabilir ve bunun için alt _ ve ^ karakterlerinden faydalanılır. Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 18
GTEXT Komutu: PLOT komutuyla çizmiş olduğumuz grafiğin herhangi bir yerine fare ile yazı eklemek amacı ile kullanılan komuttur. Örnek: 19
Yukarıdaki program çalıştırıldığında aşağıdakine benzer bir çıktı alırız, program fareye basmamızı bekler. Fareye bastığımızda ise gtext( ) komutunun içerisindeki yazı artı işaretinin orta noktasından itibaren yerleştirilir. Yani fareye basılınca grafik aşağıdaki gibi olur. 20
LEGEND Komutu: LEGEND komutu bir şekil üzerinde yer alan birden fazla grafik hakkında kısa bilgiler vermek amacı ile kullanılır. Verilen bilgiler şeklin sağ üst köşesinde gözükür. Kullanımı şu şekildedir LEGEND( İlk Grafik Hakkında Açıklama, İkinci Grafik Hakkında Açıklama, ) GRIN ON Komutu: GRIN ON komutu çizilen grafik üzerine ızgara çizgileri yerleştirmek amacı ile kullanılır. Izgara çizgileri yardımı ile grafik üzerindeki bazı değerleri okumak daha kolay hale gelebilir.grin ON komutunu GRID OFF yazarak etkisiz hale getirebiliriz. Örnek: Yukarıdaki programın çıktısı aşağıdaki gibidir, inceleyiniz. 21
HAFTAYA KALAN KOMUTLAR STEM KOMUTU SUBPLOT KOMUTU FIGURE KOMUTU 22