matlab'da bir matrisin tersini alma

matlab'da bir matrisin tersini almak için inv komutunu kullanabilirsiniz.

Örnek:

>> A = [2, -1, 0; -1, 2, -1; 0, -1, 2]

A =

     2    -1     0
    -1     2    -1
     0    -1     2

>> inv(A)

ans =

    0.7500    0.5000    0.2500
    0.5000    1.0000    0.5000
    0.2500    0.5000    0.7500

>>

matlab'ta ikilik vektörü onluk sayıya çevirme

yüksek duyarlılıklı kısma dikkat ediniz:

>> bi2de( [0, 0, 0, 1] )

ans =

8

>>

matlab'ta piksel topluluklarının etiketlenmesi

bu yazıda bir görüntü dosyasındaki piksel topluluklarının (connected components labeling) etiketlenmesi anlatılacaktır. örnek olarak aşağıdaki görüntüdeki solucanların sayısı bulunacaktır.


görüntüyü okuyalım, gösterelim ve inceleyelim:
>> gr = imread('c:/wrm.jpg');
>> imshow(gr)

arka plandan kurtulmak için renk kanallarını yukarıda belirtilen araçla inceleyelim. arka plan renginin değeri gri tonlarda 160 - 170 aralığında. solucanların silüetleri ise gri tonlarda 100'den başlayıp 70'e kadar iniyor (aşağıdaki ekran görüntüsünü inceleyiniz). bilindiği üzere imread fonksiyonunun dönüşü matris biçiminde oluyor ve matrisler üzerinde mantıksal işlem yapılabiliyor.


görüntüyü tam anlamıyla gri tonlamalı hale çevirelim ve arka plandan kurtulalım:
>> sb = rgb2gray(gr); % görüntünün renk duzeni RGB'den gri tonlamalı hale çevriliyor
>> harita = sb < 150; % 150 değerinin altındaki pikseller sıfırlanıyor
>> imshow(harita)

ekran görüntüsü:
yukarıdaki görüntü incelendiğinde istenmeyen küçük piksel topluluklarının olduğu fark edilecektir. bu istenmeyen piksel topluluklarından "64 adet pikselden daha az sayıda piksele sahip piksel topluluklarının kaldırılması" koşuluyla kurtulunabilir:

>> harita = bwareaopen(harita, 64);
>> imshow(harita)
ekran çıktısı:
artık piksel gruplarını etiketleyip solucan sayısını bulabiliriz:

>> [etiket, sayi] = bwlabel(harita);
>> sayi

sayi =

4

>>

eğer sadece 3. solucanı görmek isterseniz:
>> imshow(etiket == 3) % etiket matrisinde değeri 3 olan elemanlar
>>
ekran çıktısı:


çok basit olan bu örnek umarım sizin için faydalı olmuştur. örnek sizi yanıltmasın, çok daha karmaşık işler yapabilirsiniz...

matlab'ta görüntü dosyası okuma

bu yazıda matlab'ta görüntü dosyalarının açılması ve gösterilmesinden bahsedilecektir. görüntü dosyalarını açmak için kullanmanız gereken fonksiyon imread ve göstermeniz için gereken fonksiyon da imshow:


>> im = imread('c:/lena.jpg');
>> imshow(im)
yukarıda görüldüğü üzere imread fonksiyonuyla c sürücüsündeki lena.jpg açılmıştır ve imshow fonksiyonuyla da gösterilmiştir. işte bütün zerafetiyle lena:

imread fonksiyonu okuduğu dosyanın renk kanallarını matris olarak döner (örneğin lena.jpg 512 x 512 lik bir dosyadır ve dönüş matrisi 512x512x3'tür). dönüş değeri matris olduğu için matrislere uygulanabilecek işlemler uygulanabilir:


>> im = im - 100;
>> imshow(im)

sonuç:

matlab'ta matris oluşturma

matlab'ta bir işi birden fazla yolla yapabilirsiniz. bu yazıda bazı matris oluşturma yöntemlerinden bahsedilecektir.

>> a = [ 1, 2, 3 ; 2, 4, 6; 3, 6, 9 ; 4, 8, 12]

a =

1 2 3
2 4 6
3 6 9
4 8 12

>>
görüldüğü üzere ',' karakteri (boşluk da kullanılabilir) ile sütunları ';' karakteri ile de satırları ayırıyoruz.


ayrıca sıfır matrisi oluşturmak için zeros fonksiyonu kullanılabilir:

>> a = zeros(4)

a =

0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

>>
görüldüğü üzere zeros fonksiyonu parametre olarak belirtilen sayıda kare matris oluşturmuştur.

matlab'ta yüzey çizdirme

Matlab'ta yüzey çizdirmek oldukça kolaydır. Bu yazıda yüzey çizdirme anlatılmaktadır:

>> [x, y] = meshgrid(-2  :  0.1  :  2); %
>> z = sin(x) + cos(y);
>> mesh(x, y, z)

Yukarıdaki kodlar incelendiğinde x matrisinin sütundan sütuna artarken y matrisi de satırdan satıra artmaktadır, bu şekilde olması için [x, y] şeklinde yazılmıştır. meshgrid fonksiyonu kendisine gönderilen aralıkta kare matris üretmektedir. z matrisi de tahmin edilebileceği gibi yüksekliği ifade etmektedir (bkz: sol el koordinat sistemi). mesh ile alınan çizim:


surf fonksiyonu ile yüzey çizdirilebilir:
>> surf(x,y,z)

surf ile alınan yüzey çizimi: