Mesela gelişi güzel 0 ile 1 arasında sayılar içeren matris oluşturmak için rand 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 var lookfor 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 ettiyseniz ans = 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 ans
whos 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 double
clc 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 yine noktalı 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.5040
Bö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 ederseniz nokta dedik sonrada çarpma işareti.
Kare matrislerin tersini inv() (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 çarparsak birim matrisi elde ederiz.
>> a*d
ans =
1.0000 -0.0000
0 1.0000
Aynı zamanda istediğimiz şekilde birim matris istersek eye() fonksiyonunu kullanırız.
>> eye(3)
ans =
1 0 0
0 1 0
0 0 1
zeros() ve ones() fonksiyonları
>> ones(3)
ans =
1 1 1
1 1 1
1 1 1
>> zeros(4)
ans =
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
Vektör oluşturmak istersek
>> a = [5 6 7 8]
a =
5 6 7 8
veya
>> a = [5;6;7;8]
a =
5
6
7
8
bunu 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 =
5
6
7
8
Bir matris veya vektörün boyutunu size() fonksiyonu ile öğrenebiliriz.
>> size(F)
ans =
4 1
Bir matriste en büyük değerleri(sütunların) max() fonksiyonu ile bulabiliriz.
>> D = rand(3)
D =
0.0967 0.7224 0.5186
0.8181 0.1499 0.9730
0.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.9730
veya
en baştan matrisi iki kere max alırız.
>> max(max(D))
ans =
0.9730
C'deki for döngüsü MATLAB'ta belirlediğimiz iki sayı arasına : (iki nokta üst üste) koyarak elde ederiz.
>> 1:10
ans =
1 2 3 4 5 6 7 8 9 10
Artış miktarını belirlemezsek birer birer artar.İstersek şöyle belirleriz.
x = başlangıç sayısı olsun
z = son sayı
y = artış miktarı
x:y:z şeklinde yapabiliriz.
>> A = 1:0.8:5
A =
1.0000 1.8000 2.6000 3.4000 4.2000 5.0000
Grafik çizdirme işlemi
MATLAB'ta Pi sayısını pi ile kullanabiliriz.
>> A = 0:pi/2:2*pi
A =
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.0000
Grafiğ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 plot ile 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öylelikle
hold 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')
Hiç yorum yok:
Yorum Gönder