Math, Matrix Functions

Kategori: MATLAB , 04 Ağustos 2019 , JanFranco


Bu yazımda matematiksel fonksiyonlar ile matrix fonksiyonlarını göstereceğim. Matematiksel fonksiyonlar gayet basit ve anlaşılır olduğundan tek bir kod bloğunda hepsini vereyim, satır satır açıklayayım:


abs(num)
mod(num, 2)
log(num)
log2(num)
log10(num)
sqrt(num)
sign(num)
exp(num)
power(base, expo)
İlk satırda abs() fonksiyonu ile bir sayının mutlak değerini aldık. mod() fonksiyonu ile num sayısının ikiye göre modunu aldık. Yani iki sayısına bölümünden kalanı bulduk. log fonksiyonu ile num sayısının logaritmasını aldık. log2, log10 fonksiyonları ile 2 tabanında ve 10 tabanında logaritma hesaplarını yaptık. sqrt() fonksiyonu ile num sayısının karekökünü aldık. sign() fonksiyonu ile num sayısının işaretini bulduk. exp() fonksiyonu ile e üzeri num sayısının değerini hesapladık. Son olarak power() fonksiyonu ile base^expo şeklinde bir kuvvet hesabı yaptık.

Matrix fonksiyonlarını görelim.


mpower(matrix, expo);
sumCol = sum(x);
sumRow = sum(x, 2);
o = ones(2,3);
z = zeros(4,4);
x = magic(4);
İlk satırda mpower() fonksiyonu, parametre olarak gönderdiğimiz matrisin, expo parametresi kadar üssünü aldık. Bu element bazında değil, direk matrisin üssünü almaktır. Bu nedenle matris mutlaka kare matris olmalıdır.

sum() fonksiyonu ile matrisin satırlarındaki ve sütunlarındaki elementlerin toplamını bulduk. Parametre olarak 2 gönderirsek satırların toplamını, göndermezsek sütunların toplamını döndürür.

ones(), zeros() ve magic() fonksiyonları ile matrisler oluşturabiliriz. Bu fonksiyonlara gönderdiğimiz parametreler boyut değerleridir. Örneğin ones(2, 3) şeklinde fonksiyonu çağırdığımızda 2x3 boyutunda, tüm elemanları 1 olan bir matris oluşacaktır. Aynı şekilde zeros(4, 4) şeklinde fonksiyonu çağırdığımızda 4x4 boyutunda tüm elemanları 0 olan bir matris oluşacaktır. magic() fonksiyonu satırlarındaki elemanların ve sütunlarındaki elemanların toplamının birbirine eşit olduğu kare matrisler üretir.



ceil(matris)
floor(matris)
fix(matris)
randomMatrix = rand(4, 4);
randi([altLimit, üstLimit], satir, sütun);
ceil() fonksiyonuna parametre olarak matris gönderirsek, matristeki tüm değerleri sayının tavanına yuvarlayacaktır. Örneğin 6,1'i ceil ile yuvarlarsak cevap 7 çıkacaktır. floor() fonksiyonu da aynı işi yapar fakat sayıları tabana yuvarlar. Örneğin 6,9'u 6'ya yuvarlar. fix() fonksiyonu sayıların küsüratlı kısımlarını atar. Örneğin 11,123 sayısını 11 yapar.

rand() fonksiyonu 0 ile 1 arasında sayılar üretir. İçine gönderilen parametre matris boyutlarıdır. Farklı değerler üretmek istiyorsak, rand fonksiyonunu belirli değerler ile çarpabiliriz veya toplayabiliriz.

0-1 arasında değil de belli bir aralıkta değerler üretmek için randi() fonksiyonunu kullanırız. İlk iki parametre alt limit, üst limit değerleri, 3. ve 4. parametreler boyut parametreleridir.


find(matris)
matris = randi([0,10], 5, 5);
indisler = find(matris);
matris(indisler) = matris(indisler) + 1;
indisler = find(~matris);
indisler = find(matris>5);
indisler = find(matris == 0);
indisler = find(matris>5, 2);
indisler = find(matris == 0, 2, 'last');
find() fonksiyonu ile matriste değerler arayabiliriz. find(matris) şeklinde bir kullanım yaptığımızda 0 değerleri hariç tüm değerlerin indexlerini return alacağız. 2, 3 ve 4. satırlarda bir örnek kullanım görüyoruz. 0 olmayan tüm değerleri aldık, bir artırdık. find(~matris) şeklinde bir kullanım yaparsak sadece 0 olan değerlerin indexlerini return alırız. Parametre olarak matris > 5, matris == 0 gibi spesifik bilgiler de verebiliriz. İkinci bir parametre olarak kaç değer alacağımızı bildirebiliriz. Ayrıca üçüncü bir parametre olarak sadece sondaki değerleri almak için 'last' şeklinde bir anahtar kelime gönderebiliriz.


transpose(matris)
inv(matris)
det(matris)
Son olarak matrisin transpozunu, tersini, determinantını yukarıdaki fonksiyonlar ile alabiliriz.


Sonraki Yazı: Symbolic Numbers, syms
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın