Döküman - İYTE IEEE Matlab Kurs Notları - 1
-
Not: Her hafta Cuma günleri kurs o yüzden haftada 1 yayınlıycam.
Matlab'ta en büyük yardımcımız help fonksiyonudur.
Mesela gelişi güzel 0 ile 1 arasında sayılar içeren matris oluşturmak içinrand fonksiyonu kullanılır ve nasıl kullanılıyor öğrenmek için help rand yazmamız yeterlidir.Uzunca döküman açılıyor.
Birde amacımız gelişi güzel sayı üretmek fakat hangi fonksiyonu kullancağımızı bilmiyoruz.Matlabta şöyle bir güzellik varlookfor random desek random ile ilgili bütün fonksiyonları gösteriyor.
rand'tan bahsetmişken rand(2) yazdığımızda ;
rand(2)
ans =
0.0318 0.0462
0.2769 0.0971
Olarak çıktı veriyor ve bu sayıların hepsinin gelme olasılığı eşit mesela 1/9 ile 1/5 in gelme olasılığı aynı.Her seferinde rand'ı çalıştırdığımızda farklı sonuçlar gösterir.Tabi 2 yazmamız 2x2 matris oluşturulmasını sağladı.
Bu arada dikkat ettiysenizans = ve alt satırda matrisimizi gösteriyor.Bu ing answer(cevap) ın kısaltması ve belli bir değişkene atamazsak bütün sonuçlar ans ' a atanır.Sağ workspace'te ans değişkeninide görebilirsiniz.
Yanında <3x3 double> yazıyor. Bize kaçlık matris olduğunu gösteriyor ve türünü.
Şimdi bir değişken oluşturalım D ve 3 e 2 lik bi matris olsun bu.
D = rand(3,2); yazdım ve D adlı değişken oluşturdum.Sadece D yazıp enterlarsam 3 e 2 lik matrisimi görürüm.Dikkat ettiyseniz sonunda; (noktalı virgül) var aynı C deki gibi.Sona ; koymak ile koymamanın hiç bir farkı yok sadece 2 aşamada görmüş oluyor matrisi eğer ; koyarsak sona.Koymasaydım şöyle olurdu.
>> D = rand(3,2)
D =
0.5383 0.4427
0.9961 0.1067
0.0782 0.9619
Şimdi kaç değikenimiz var kontrol etmek istersek, who komutunu kullanıyoruz.
>> who
Your variables are:
D answhos yazdığımızdada matrislerimizin boyutlarını türlerini ve kaç bytetan oluştuklarını görebiliriz.
>> whos
Name Size Bytes Class Attributes
D 3x2 48 double
ans 1x1 8 doubleclc komutu, o anki komut satırını temizler.clear ve clear all o ana kadar oluşturulan herşeyi siler.
Kendimiz matris oluşturmak istersek satırları bölmek için yinenoktalı virgül kullanıyoruz.
>> A = [1 2; 3 4; 5 7]
A =
1 2
3 4
5 7
Matrislerde toplama veçıkarma ve bölme işlemleri ; şart aynı türde matris olmalılar. 2x3 ise 2x3 gibi.
>> A = rand(2,3);
>> B = rand(2,3);
>> C = A + B
C =
0.2288 1.0849 0.4663
0.8839 1.4689 0.5900
>> D = B - A
D =
0.1092 0.3786 0.4355
0.4143 -0.1734 0.5040Bölme işleminde; A/B demek ile B\A demek aynı şey oluyor.
B \ A
ans =
0.3641 1.0181 0.0588
-0.0024 0.2475 0.0075
0 0 0
Çarpma işleminde; 3x2 matris 2x3 matris ile çarpılabilir sadece matematikten bildiğimiz üzere.
>> b = rand(3,5);
>> a = rand(2,3);
>> a*b
ans =
0.7128 0.4181 0.7043 0.6467 0.6162
1.4325 1.1838 1.7412 1.1091 1.5326
Çarpma işleminde; 3x2 matris 2x3 matris ile çarpılabilir dedik fakat diyelim ki illa kendi oluşturduğumuz mesela 2 matris var.
>> a = [2 5 6;4 5 8];
>> b = [89 4 3;7 0 1];
Bunları componentwise (element by element) olarak çarpabiliriz yani;
>> a.*b
ans =
178 20 18
28 0 8
Aradaki işarete dikkat ederseniznokta dedik sonrada çarpma işareti.
Kare matrislerin tersiniinv() (inverse kısaltması) fonksiyonu ile elde edebiliriz.
>> a = rand(2)
a =
0.6820 0.0714
0.0424 0.5216
>> d = inv(a)
d =
1.4789 -0.2026
-0.1203 1.9335
Bir matrisi kendisiyle çarparsakbirim matrisi elde ederiz.
>> a*d
ans =
1.0000 -0.0000
0 1.0000Aynı zamanda istediğimiz şekilde birim matris istersek eye() fonksiyonunu kullanırız.>> eye(3)ans =1 0 00 1 00 0 1zeros() ve ones() fonksiyonları>> ones(3)ans =1 1 11 1 11 1 1>> zeros(4)ans =0 0 0 00 0 0 00 0 0 00 0 0 0Vektör oluşturmak istersek>> a = [5 6 7 8]a =5 6 7 8veya>> a = [5;6;7;8]a =5678bunu aynı zamanda istersek üstteki gibi araya ; (noktalı virgül) koymadan sadece a' (tek tırnak) ile de elde edebiliriz.Yani a'nın transpozu.F = a'F =5678Bir matris veya vektörün boyutunu size() fonksiyonu ile öğrenebiliriz.>> size(F)ans =4 1Bir matriste en büyük değerleri(sütunların) max() fonksiyonu ile bulabiliriz.>> D = rand(3)D =0.0967 0.7224 0.51860.8181 0.1499 0.97300.8175 0.6596 0.6490>> max(D)ans =0.8181 0.7224 0.9730İstersekte bir matristeki en büyük sayıyı iki şekilde bulabiliriz.Öğrendiğimiz gibi ans = max(D)İstersek bir daha max(ans) deriz.>> max(ans)ans =0.9730veyaen baştan matrisi iki kere max alırız.>> max(max(D))ans =0.9730C'deki for döngüsü MATLAB'ta belirlediğimiz iki sayı arasına : (iki nokta üst üste) koyarak elde ederiz.>> 1:10ans =1 2 3 4 5 6 7 8 9 10Artış miktarını belirlemezsek birer birer artar.İstersek şöyle belirleriz.x = başlangıç sayısı olsunz = son sayıy = artış miktarıx:y:z şeklinde yapabiliriz.>> A = 1:0.8:5A =1.0000 1.8000 2.6000 3.4000 4.2000 5.0000Grafik çizdirme işlemiMATLAB'ta Pi sayısını pi ile kullanabiliriz.>> A = 0:pi/2:2*piA =0 1.5708 3.1416 4.7124 6.2832Şimdi bunun sinüsünü alırsak.Sinüs fonksiyonu için sin() kullanılır.>> B = sin(A)B =0 1.0000 0.0000 -1.0000 -0.0000Grafiğinide plot() fonksiyonu ile çizdiririz.İki parametre alır bu fonksiyon ve ilki x ikincisi y eksenidir.>> plot(A,B)İstersem rengini değiştirebilirim veya noktalı şekilde veya yıldız bir sürü seçeneği help plotile görebilirim.Rengide plot fonksiyonuna üçüncü parametre olarak girdiğimizde tabi iki tek tırnak arasına ve rengin baş harfini veya rengine göre değişir yazdığımızda grafiğimizin rengi değişir.>> plot(A,B,'r')Daha iyi nerde hangi sonuçta olduğunu görmek istersek grid on dememiz yeterli böyleliklehold on ile aynı anda iki fonksiyonu görebiliriz.C adlı yeni bi değişken oluşturdum ve bunun cosinüs'ünü aldım.>> hold on>> C = 0:0.25:3*pi;>> G = cos(C);>> plot(C,G,'k')Mesela unuttum hangisi cosinüsün hangisi sinüsün legend() ile şöyle görürüz.legend('birincisi','ikincisi')>> legend('sin','cos') -
Takip.
-
eywallah dostum ;)
-
algoritmalar ve prog dersinde görüyoz biz de bunları, eyvallah hocam dursun kenarda.
-
Takipteyim.
Hocam PDF ya da Word şeklinde var mı?
Varsa çok iyi olur. :)
-
Faydali. Cizik.
-
çizik
-
adamsın olm ya :D
-
matlab güzel (dildir demeyeceğim) bir dünyadır.
ama çalışması için bir şeye muhtaç olan dillerden her zaman nefret etmişimdir.
-
matlab in help i candır can :D güzel konu
-
konu cok iyi. benim bir sorum olacak hemen.
simulinkte scope a iki input nasil verebilirim. ayrica x-axis 10da limitli, 20ye nasil cikarabilirim.