MATRİS TRANSPOZU: Bir matrisin satırlarını sütun, sütunlarınıda satır yaparak elde edilen matrise transpoz matris denilir. Diğer bir değişle, eğer A matrisi aşağıdaki gibi tanımlandıysa bu matrisin transpoz matrisi a 11 a k1 A = [ ] a 1n a kn a 11 a 1n A T = [ ]. a k1 a kn Matlab da A matrisinin transpozu A ile veya transpose(a) ile hesaplanır. MATRİS İŞLEMLERİ: A ve B boyutları aynı olan aşağıdaki gibi iki matris olsun, a 11 a k1 b 11 b k1 A = [ ] B = [ ] a 1n a kn b 1n b kn k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir. A B A ve B matrislerinin matris çarpımlarını verir. A. B A ve B matrislerinin eleman eleman çarpımlarını verir, yani A. B aşağıdaki gibi hesaplanır 1
a 11 b 11 a k1 b k1 A. B = [ ] a 1n b 1n a kn b kn k A A matrisinin her elemanı k sayısı ile çarpılır. A/k A matrisinin her elemanı k sayısı ile bölünür. A. ^k A matrisinin her elemanının teker teker k. kuvveti alınır. k. ^A k sayısının üstleri için A matrisinin elemanları teker teker kullanılarak yeni bir matris elde edilir. sin (A) A matrisinin her elemanının teker teker sinüsü hesaplanır. exp (A) A matrisinin her elemanının e üzerili kuvveti hesaplanır. g (A) A matrisinin her elemanı teker teker g( ) fonksiyonunda yerine konularak yeni bir matris elde edilir. A + B A ve B matrislerinin toplamlarını verir. A + B A ve B matrislerinin farkını verir. A ve B matrisleri iki kare matris ise, bu matrisler için aşağıdaki işlemler yapılabilir. A/B A ve B matrislerinin bölümünü verir ve şuna eşit olur AB 1. A\B B ve A matrislerinin bölümünü verir ve şuna eşit olur A 1 B. inv(a) A matrisinin tersini verir. det(a) A matrisinin determinantını verir. A ve B matrisleri aşağıdaki gibi verilsin. Buna göre aşağıdaki örnekleri inceleyiniz. 2
3
Matlab ın Yardım Olanakları Matlab daki herhangi bir fonksiyo hakkında bilgi edinmek için HELP fonksiyon_ismi şeklinde bir komut yazarız. help lang yazarsak sadece matlab ı programlama dili gibi kullanacağımız komutların listesi çıkar. LOOKFOR komutu LOOKFOR komutu ile aranan kelimenin içerisinde geçtiği bütün terimler bulunur. Kullanımı LOOKFOR aranan_kelime şeklindedir. 4
QUIT ve EXIT Komutları Matlab komut penceresinde quit veya exit yazarsak matlab dan çıkılır. CLC, CLEAR ALL ve CLOSE ALL Komutları CLC komutu komut penceresini temizler. CLEAR ALL komutu tanımlanmış bütün değişkenleri siler. CLOSE ALL komutu açık olan bütün şekilleri kapatır. Bu komutların üçüde herhangi bir matlab programı yazarken programın en başına yazılırlar. SAVE Komutu Matlab kapatıldığında bütün değişkenler ve bu değişkenlerin değerleri silinirler. Eğer matlab ı kapattıktan sonra bazı dekişkenlerin değerlerini saklamak istiyorsak bunu save komutu ile yapabiliriz. Kullanımı şöyledir SAVE dosya_ismi değişken_ismi_1 değişken_ismi_2. 5
LOAD Komutu LOAD komutu önceden saklanan değişkenleri ve değerlerini matlab a yüklemek için kullanılır ve bu komutun kullanımı biçimindedir. LOAD dosya_ismi 6
Eğer Matlab da bazı benzetimler yapıp bir takım sonuçlar elde ettikten sonra bu sonuçların daha sonrada tekrar kullanılabileceğini düşünüyorsak matlab ı kapatmadan önce bu deişkenleri save komutu ile kaydetmeliyiz. Daha sonra ise load komutu ile kaydedilen değişkenleri tekrar matlab platformuna yüklememiz mümkündür. INF ve NaN sonuçları Matlab da herhangi bir sayıyı 0 a böldüğümüzde sonucu INF olarak, yani sonsuz (infinity) olarak belirtir. NaN ise sayı değil (not a number) anlamına gelir ve 0/0 veya / bölmelerinin sonucunda oluşur. WHO Komutu Matlab platformunda tanımlanan değşkenlerin listesini verir. Kullanım şekli WHO biçimindedir. 7
Matlab da Karmaşık Sayılar: Matlab da karmaşık sayılar i veya j harflerinden birisi kullanılarak oluşturulabilir. Matlab Fonksiyonları ve Matlab Program Metinleri (Matlab Functions and Matlab Scripts) Matlab da yazacağımız komut sayısı genellikle birkaç satırın üzerindedir. Bu nedenden ötürü matlab komutlarını komut penceresine değilde bir dosyaya yazarız. Bu dosyaya Matlab Program Dosyası (Matlab Script File) ismi verilir. Matlab program dosyası kaydedilir ve gerektiğinde daha sonra açılarak üzerinde çalışılmaya devam edilebilir. 8
Matlab fonksiyonları ise matlab program dosyalarında kullanılan program parçalarıdır. Fonksiyonlar belli bir hesaplamayı yapmak amacı ile yazılırlar ve bir matlab programının içerisinde birden fazla sayıda çağrılabilirler. Matlab program dosyası açmak için matlab penceresinin sol köşesinde bulunan sayfa işeretini tıklamamız yeterlidir. Daha sonra açılacak olan dosyayı bir dizin altına kaydetmemiz gerekmektedir. Bunun için de dosyaya bir isim vermemiz gerekmektedir. Matlab program dosyamızda program yazmaya başlamadan önce ilk olarak program hakkında açıklayıcı bilgi içeren bir iki satır yazılması ve daha soonra da clc, clear all, ve close all komutlarının program başına yazılması bizim tavsiye ettiğimiz yazım yöntemidir, clc komutu ana pencereyi temizler, clear all komutu değişkenleri siler, close all komutu açık figürleri kapatır. Aşağıdaki şekilde yeni matlab sayfası açmak için farenin tıklandığı sayfa ikonu gösterilmiştir. Herhangi bir matlab programının başlangıç satırları aşağıdaki gibi olabilir. 9
Bundan sonra aksi belirtilmedikçe matlab programalarımızı matlab dosyasında yazacağız. Ayrıca matlab programlarında yazacağımız komutların ve değişkenlerin isimlerde Türkçe karakter kullanmamamız gerekmektedir. Türkçe karakterler program derleyicisi tarafından tanınmamaktadır. MATLAB da Fonksiyon Yazma Matlab da yazılan bir fonksiyonun genel şeması aşağıdaki gibidir function [cikisverisi1, cikisverisi2, ] = fonksiyonismi(girisverisi1, girisverisi1, ) %İşlem yapma kısmı cikisverisi1=.., cikisverisi2=..,.... Fonksiyon dosyası kayıt edilirken, dosya ismi ile fonksiyon isminin aynı olması gerekmektedir. Aksi halde fonksiyonu başka programlarda çağıramayız. 10
Yukarıdaki örnekteki fonksiyon komut penceresinde aşağıdaki örnekteki gibi çağrıarak kullanılabilir. Veya başka bir matlab programının içerisinde fonksiyonun ismi ve giriş verileri belirtilerek çağrılabilir, mesela toplamfark(12, 8);. Bazen fonksiyon içerisinde alt fonksiyonlar yazmak ve bunları ana fonksiyonda kullanmak mümkündür. Bu durumda genel yapı şöyle olur function [cikisverisi1, cikisverisi2, ] = Anafonksiyonİsmi(girisVerisi1, girisverisi2, ) %İşlem yapma kısmı. cikisverisi1=.., cikisverisi2=.., 11
function [AltCikisVerisi1, AltCikisVerisi 2, ]=Altfonksiyonİsmi1(girisVer1, girisver2, ) %İşlem yapma kısmı. AltCikisVerisi 1=.., AltCikisVerisi 2=.., function [AltCikisVerisi3, AltCikisVerisi 4, ]=Altfonksiyonİsmi2(girisVer3, girisver4, ) %İşlem yapma kısmı. AltCikisVerisi 3=.., AltCikisVerisi 4=.., 12
Matlab da İlişkisel ve Mantıksal İşlemler: Matlab da ilişkisel işlemler aşağıdaki operatörler yardımı ile yapılırlar. < Küçüktür <= Küçüktür veya eşittir > Büyüktür >= Büyüktür veya eşittir == Eşittir ~ = Eşit değildir Matlab da mantıksal işlemler ise aşağıdaki operatörler ile yapılırlar. & Mantıksal AND Mantıksal OR ~ Mantıksal DEĞİL any(x) all(x) Bu fonksiyon eğer x sayı vektöründeki herhangi bir eleman sıfırdan büyük veya eşitse geriye 1 çevirir, diğer durumda ise geriye 0 çevirir. Bu fonksiyon eğer x sayı vektöründeki her eleman sıfırdan büyük veya eşitse geriye 1 çevirir, diğer durumda ise geriye 0 çevirir. 13
x bir sayı vektörü olsun. Bu sayı vektörünün içinde 5 ten büyük sayıların adedini veren bir program yazınız. 14
Kontrol Akış İfadeleri (Control Flow Statements) Matlab da kontrol akışlı programlar üç değişik program yapısı ile yazılabilir. Bunlar fordöngüleri, while-döngüleri, ve if-then-else yapıları olmaktadır. Şimdi bu yapılar hakkında kısa bilgiler ve örnekler verelim. IF ve BREAK İfadeleri: IF koşul kontrol etme komutunun kullanım kalıbı şöyledir: IF koşullar komutlar ELSEIF koşullar komutlar ELSE komutlar END Yukarıdaki matlab programını komut ekranında aşağıdaki gibi çalıştırabiliriz. 15
Öğrencinin bir dersten aldığı notların ortalamasını giriş verisi olarak alan ve öğrenciye aşağıdaki kurala göre harf notu atayan matlab programını yazınız. Harf Notu Ortalama Sınav Notu AA >90 BA 85 Not < 90 BB 80 Not < 85 CB 75 Not < 80 CC 70 Not < 75 DC 65 Not < 70 DD 60 Not < 65 FD <60 Çözüm: Matlab programı aşağıdaki gibi yazılabilir. 16
Yukarıdaki programı matlab komut penrecesinde aşağıdaki gibi çalıştırabiliriz. FOR Döngüsü For döngüleri bir grup komutun belirli bir sayıda işletilmeleri için kullanılırlar. Kullanım kalıbı şöyledir. for index = değerler end komutlar 1 den 9 a kadar tek sayıların toplamını veren matlab programı aşağıda verilmiştir. Yukarıdaki program çalıştırıldığında aşağıdaki gibi sonuç alınmaktadır. 17
Aşağıda a = [1 3 12 6 8] sayı vektörünün elemanlarının toplamını veren program verilmiştir. İnceleyiniz. Yukarıdaki program çalıştırıldığında aşağıdaki sonucu verir. WHILE Döngüleri: While döngüsünün genel kullanım şekli aşağıdaki gibidir, while mantık_ifadesi komutlar end buradaki mantık_ifadesi doğru sonuç verdiği sürede döngü içerisindeki komutlar yapılmaya devam eder. Aksi durumda döngüden çıkılır. Kullanıcıdan pozitif tam sayılar girmesini isteyen ve bunlardan bir sayı vektörü oluşturan matlab programını yazınız. Kullanıcı ne zaman negatif bir sayı girerse program sonlanacak ve kullanıcının o ana kadar girmiş olduğu sayıları ekrana basacaktır. Çözüm: İstenen program aşağıda verilmiştir. İnceleyiniz. 18
Yukarıdaki program çalıştırıldığında aşağıdaki gibi bir sonuç alırız. Alıştırma: Kullanıcıdan bir tam sayı değerini giriş verisi olarak alınız. Diyelimki almış olduğunuz tam sayı değeri N olsun. Daha sonra 1 2 2 3 3 3 4 4 4 4 N N N N şeklinde bir vektörü ekranda gösteren matlab programını yazınız. N adet 19