MATLAB-2 «YTÜROK» EĞİTMEN=REHA ÖZGÜR ŞİMŞEK Matris İşlemleri • Bir önceki hafta matriste matematiksel işlemler verilmişti. Tekrar olması açısından aşağıda işlemlerin tablosu verilmektedir. Matris İşlemlerine Örnekler Alt Matrisler a(:) a(:,i) a(j,:) a(:,i)=[] a(i,:)=[] a(:,[i j]) a([i j],:) a matrisinin sütunlarının ard arda dizilmesinden oluşan bir sütun vektör oluşturur. a matrisinin i. sütununu alır. a matrisinin j. satırını alır. a’nın i. sütununu siler. a’nın i. satırını siler. a matrisinin i ve j. sütununu alır. a matrisinin i ve j. satırını alır. inv(a) a’ det(a) diag(a) rand Bir kare matrisin tersini (inversini) alır. a matrisinin devriğini (transpozesini) alır. a matrisinin determinantını hesaplar. Bir kare a matrisinin köşegen elemanlarını bir sütun vektöre atar. 0 ile 1 arasında sayı üretir.a ile b arasında mxn boyutlu matris oluşturmak için b+a-b(rand(m,n)). Alt Matrisler Örnekler Çok Boyutlu Diziler • Dizilerin tek boyutlu olması gerekmez; istediğiniz boyutta tanımlayabilirsiniz. Örneğin 3x4 bir matris için 2 boyutlu bir dizi kullanırız. Ya da üç boyutlu Öklid uzayındaki x, y, z noktalarını saklamak için 3 boyutlu bir diziyi tercih edebiliriz. • MATLAB’DA çok boyutlu diziler tanımlamak ve çok boyutlu dizilerle işlem yapmak mümkündür. Aşağıdaki örnekte 2x4x3 boyutunda çok boyutlu dizi örneği tanımlanmıştır. Çok Boyutlu Diziler • Aşağıda gösterildiği gibi tanımlama işlemi de çok boyutlu dizi oluşturmak için kullanılabilmektedir. • «ndims(degisken_ismi)» fonksiyonu ile dizinin boyut sayısının sorgulanması sağlanır. «size(degisken_ismi)» fonksiyonu ile dizinin satır, sütun ve derinlik mertebesi verilir. Hücre Dizileri • Elemanları başka bazı elemanlar içerebilen hücrelerden oluşan MATLAB dizilerine hücre dizileri denir. • Her bir hücrenin elemanları, reel veya kompleks elemanlardan oluşan diziler ile bunları üstel, trigonometrik veya basit cebirsel işlemlerinin kombinasyonlarından ya da karakter ve karakter dizilerinden oluşabilir. Örnek: Hücre Dizileri • Hücre dizilerinde, hücre elemanlarının içeriğinin görüntülenebilmesi için elemanlar normal parantezler yerine süslü parantezler kullanılmaktadır. Örnek: • «cell» fonksiyonu ile istenilen boyutta elemanları boş diziler olan bir hücre dizisi oluşturulabilir. Örnek: «B = cell(2,3)». Dizi oluşturulduktan sonra elemanlarına istenilen değerler atanabilmektedir. Hücre Dizileri • «celldisp» fonksiyonu ile bir hücre dizisinin tüm elemanları içerikleri ile birlikte görüntülenebilmektedir. • «cellplot» fonksiyonu ile de bir hücre dizisi aşağıdaki gibi görüntülenebilmektedir. • Hücre dizilerinde, herhangi bir alt dizinin elemanlarıda görüntülenebilir. Yapı Dizileri • Yapı dizileri genel olarak veri tabanı oluşturma amacıyla kullanılmaktadır. Yapıları oluşturan her eleman farklı tiplerde olabilmektedir. Bu elemanların her birinin ayrı isimleri olduğu gibi, yapı dizisini oluşturan her elemanın ortak bir ismi de vardır. • Yapı dizileri için genel kullanım «yapi_adi.birim_adi» biçimindedir. Örnek: • Yapı dizilerinde de parantezler kullanılarak dizinin diğer elemanlarını oluşturmak mümkündür. Örnek: ogrenci(2).numarasi = 3195; Bir Değişkene Dışarıdan Değer Atanması • «input» fonksiyonu, komut penceresinde bir değişkene değer girilmesini isteyen bir komut görüntüler ve kullanıcının bu değeri girmesi beklenir. • Eğer herhangi bir değer girilmeden enter tuşuna basılırsa, «x» değişkenine boş matris ([]) atanır. • Eğer geçerli bir giriş yapılmazsa, MATLAB geçerli giriş yapılıncaya dek bu komutu işletir. Üretilen Sonuçların Sunulması • MATLAB’da üretilen sonuçların gösterim formatı seçilebilmekte ve değiştirilebilmektedir. • Sonuç gösteriminin genel kuralı, ondalıklı sayılar için virgülden sonra 4 basamak kullanmaktır. Girilen sayının 10^4’ten büyük veya 10^(-4)’ten küçük olması durumunda ise değer 10’un kuvvetleri biçiminde gösterilir. 10’un kuvvetleri «e+» ve «e-» ile gösterilir. • MATLAB’ın sonuç gösterimi yapısı «format» komutu ile değiştirilebilmektedir. Üretilen Sonuçların Sunulması • «disp()» fonksiyonu herhangi bir değişkene atanmış değerin sunulmasını sağlar. Bu değişken bir karakter dizisi de olabilmektedir. • «fprintf(bicim,deger)» fonksiyonu da bir açıklama ifadesi ile birlikte, bir veya daha fazla değerin görüntülenebilmesini sağlar. Burada «bicim» çıkışı yapılacak bilgiye ilişkin açıklamaları ve bu açıklamaların nasıl bir görüntü ile sunulacaklarını belirlemeltedir. Örnek: • Bu ifadede «%f» sunulacak değişken değerine ilişkin açıklamanın kayan noktalı biçimde gösterimini sağlar. «\n» ifadesi ise, sonucun komut istem ifadesinin (>>) öncesinde kaç satır boşluk bırakıldıktan sonra yazılacağını belirler. • «%f » ifadesi yerine «%a.bf» yazılırsa, «a» ifadenin ne kadar boşluk bırakıldıktan sonra yazılacağını, «b» ise virgülden sonra kaç basamak kullanılacağını gösterir. • «\n» ifadesi ardarda ne kadar istenilirse kullanılabilir. Üretilen Sonuçların Sunulması • «fprintf» fonksiyonunda kullanılan çeşitli biçimler aşağıdaki tabloda verilmiştir: Örnekler Üretilen Sonuçların Sunulması • «fprintf» fonksiyonu ile çıkışı yapılacak değerlere değişken atamak, aşağıdaki örnekte verildiği gibi hatalı sonuçlar ortaya çıkabilmektedir. • MATLAB, «fprintf» ile sunulan ifadenin kaç karakterden oluştuğunu da sayar ve bu değeri de sunar. Böyle bir durumun önüne geçmek için «sprintf» fonksiyonu kullanılabilmektedir. • «sscanf(str,’format’)» fonksiyonu str ile verilmiş karakter dizisinin içeriğini format içeriğinde verilmiş ifadeye (%f, %d, %g vb.) göre sayısal değerlere dönüştürür.