MATLAB'A GİRİŞ

                                                                              MATLAB


açılımı : matrix laboratory

Matlab'ın temelindeki yapı boyutlandırma gerektirmeyen matrixlerdir.

Matlab'ı gelişmiş bir hesap makinesi olarak düşünebiliriz.

Matlab ekranı genel olarak 3 kısımdan oluşur: 

1-command window(komut penceresi)

2-workspace(tanımladığımız değişkenlerin kaydedildiği yer)

3-command history(komut geçmişi)

current folder(kodu nereye kaydettiğimizi gösteriyor)


Command window bizim için, değişken tanımladığımız ve küçük işlemler yapabildiğimiz bir kısım. Tek satırlık kodlar yazabiliriz ama daha gelişmiş kodlar yazmak için editorü açmamız gerekir. Bunu ise command window'a edit yazarak açıyoruz. 


önemli komutlar

clc komutu= Sadece command window'u temizler. Workspace değişmez, yani tanımladığımız değişkenler kaybolmaz.

clear komutu= Sadece workspace temizlenir. Tanımladığımız değişkenler kaybolur.

edit komutu= Kodu yazdığımız yeri açar.


Değişken Türleri;

tam sayı =input

ondalık sayı = double, float

düzyazı = string

harf,karakter = char

bool = true, false değerlerini alır.


Değişkenleri tanımlarken ';' kullanmak ne işe yarıyor? Bir örnekle göstereyim.

>> a=5

a =

     5

>> 

gördüğünüz gibi yukarıda noktalı virgül kullanmadım bu yüzden değişken workspace'de tanımlandı ek olarak command window'da tekrar yazıldı.

>> a=5;

>> 

yukarıda ise noktalı virgül kullandım burada sadece workspace'de değişkeni tanımladı, command window'da göstermedi.

Editörde yazdığımız kodların çıktılarını(sonuçlarını) command window'da görüyoruz.

Editörü sadece edit komutu ile değil ctrl+n ile de açabiliyoruz.


Değişkenleri Adlandırma

Değişken tanımlarken dikkat etmemiz gereken bazı kurallar vardır burada onlara değineceğim.

>Değişkenler sayılarla başlamaz.

>Değişkenleri isimlendirirken boşluk kullanılmaz. 

>Türkçe harf kullanılmaz örneğin ö,ü,ı gibi

>Matlab büyük küçük harfe duyarlıdır. Örneğin matlab, sayı ve Sayı değişkenlerini iki farklı değişken olarak algılar.

>Değişken isimleri en fazla 63 karakterden oluşur.

Matlab'da ondalık sayı yazmak için '.' kullanıyoruz. 3.5 gibi

3,5 yazarsak bunu iki farklı sayı olarak algılar.

Biz bir sayı yazdığımızda örneğin;

3

buna matlab, ans(answer) adlı bir değişken atar. 

>Matlab'da matematikteki işlem önceliği geçerlidir. Örneğin;

4*3-5

önce çarpma işlemini sonra çıkarma işlemini yapar.


Workspace'den sadece bir değişkeni silmek istersek; örneğin a değişkenini silmek istersek clear a yazabiliyoruz.

Matlab'da tanımlı bazı fonksiyonların kullanımını bilmiyorsak öğrenmek için help komutunu kullanabiliriz.

help plot şeklinde kullanıyoruz. Burada plot fonksiyonunu nasıl kullanacağımızı açıklayan bir yazı çıkar.

doc plot yazarsak; help menüsü açar, plot fonksiyonun nasıl kullanacağını açıklar.

Editöre yazdığımız kodu çalıştırmak için üst kısımda yer alan run'a basabiliriz ama bunun için dosyayı kaydetmemiz gerekir. Kaydetmeden çalıştırmak istersek ctrl+enter yapabiliriz.


Matrix oluşturmak

matris=[1,2,3;4,5,6;7,8,9]

matris tanımlarken bir alt satıra inmek için ';' kullanıyoruz. Yukarıdaki matrisi şu şekilde de tanımlayabiliriz:

matris=[1 2 3;4 5 6;7 8 9]

Aşağıda bazı matris işlemlerine göz atacağız.


Matris çarpması yaptırmak

matris1=[1 2 3]

matris2=[4;5;6]

sonuc=matris1*matris2

Cevabımız 32 çıkıyor. Yani birinci matrisin satırı ile ikinci matrisin sütununu çarpıyor.


Birebir Çarpma

sonuc2=matris1.*matris2

cevabımız sonuc2 =

     4     8    12

     5    10    15

     6    12    18


Bir matrisin izini bulmak için

matris3=[1 2 3;4 5 6;7 8 9]; (aşağıda birkaç örnekte bu matrisi kullanacağım)

trace(matris3)

cevabımız 15 çıkıyor.


Üst üçgen matris oluşturma

triu(matris3)

ans =

     1     2     3

     0     5     6

     0     0     9


Alt üçgen oluşturma

tril(matris3)

ans =

     1     0     0

     4     5     0

     7     8     9

Sıfır matrisi oluşturma

zeros(1,3) (ilk girdiğimiz sayı satır ikinci girdiğimiz sayı sütun sayısını belirtiyor)

ans =

     0     0     0

zeros(3) yazarsak 3 e 3lük sıfırlardan oluşan bir kare matris oluşur.

ans =

     0     0     0

     0     0     0

     0     0     0

Elemanları birlerden oluşan matris oluşturma

ones(1,5)

ans =

     1     1     1     1     1


Birim matris oluşturma

eye(3,4)

ans =

     1     0     0     0

     0     1     0     0

     0     0     1     0


Bir matrisin tersini almak

matris=[4,5,5;6,7,5;3,9,6]; 


inv(matris)


ans =

   -0.0625    0.3125   -0.2083

   -0.4375    0.1875    0.2083

    0.6875   -0.4375   -0.0417


Matrisin transpozunu alma(satırları sütun, sütunları satır yapıyor)

matris=[1 2 3;4 5 6;7 8 9]; 

matris'

ans =

     1     4     7

     2     5     8

     3     6     9

Matrisin determinantını almak

matris3=[1 4,5;4,7,8;3,5,7]; 


det(matris3)


ans =

   -12


Matrisin herhangi bir elemanını bulma

matris(2,1) = matrisin 2. satırı 1.sütunu

matris(;2) = 2. sütun tüm satırlar 

matris(3;) = 3. satır tüm sütunlar


input 

Dışarıdan veri almak için kullanılır. Örneğin;

isim=input('isminizi giriniz:','s')

yukarıdaki kod ile dışarıdan isim değişkenini aldık şimdi ismi yazdırmak istersek;

fprintf('%s\n',isim)

fprintf = ekrana bir şey yazdırmak için kullanıyoruz.

%s neden kullandık?

çünkü bizim dışarıdan aldığımız değişken kelime yani düz yazı olarak geliyor ve biz matlab'a düzyazı yazdırmak (string yazdırmak) istediğimizi belirtiyoruz. 

% işareti kullanılmak zorunda.

,isim yazmamızın nedeni?

virgülün yanına yazdırmak istediğimiz değişkeni yazıyoruz

/n ne işe yarıyor?

imleci bir alt satıra götürüyor.


örneğin ondalık sayı yazdırmak istiyoruz;

sayi=2.3

fprintf('%f',sayi)

command windowda

sayi: 2.300000

olarak görüyoruz.

%f kullandık neden?

çünkü ondalık sayı =float

Ekrana bir şey yazdırmak için kullandığımız başka bir komut ise;

disp('merhaba')

veya disp ile bir değişkeni de yazdırabiliriz;

sayi=2.3;

disp(['sayi = ',num2str(sayi)]) =>dışarıdan değişken alırsak bu şekilde kullanıyoruz.(sayı değişkeni gibi)


num2str() fonksiyonu dışarıdan aldığımız herhangi bir değişkenin türünü stringe çeviriyor.

disp ile ekrana bir bilgi yazdırdığımızda imleç alt satıra geçiyor.

fprintf ile ekrana bir bilgi yazdırdığımızda imleç yazdırdığımız bilginin yanında kalıyor.



Editöre kod yazmaya başlamadan önce ;

clear all,clc

komutlarıyla başlarız. Nedeni önceden tanımlanmış değişkenler varsa temizlemek için.


İlişkisel operatörler

eşit == 

eşit değil ~=

büyük >

küçük <

büyük eşit >=

küçük eşit <=

Örnek;

a==b a ile b eşittir

a~=b a ile b eşit değildir

a>b a b'den büyüktür

a<b a b'den küçüktür

a>=b a  b'ye büyük eşittir

a<=b a b'ye küçük eşittir


Mantıksal operatörler

ve işareti &

veya işareti  ||

değildir işareti  ~


İf komutu


if şart                          if'in yanına yazdığımız şart doğru ise altındaki işlemi gerçekleştirir.

    işlem

elseif şart2               yukarıdaki if şartı doğru değil o yüzden bu şarta bakıyor eğer şart doğru 

     işlem2                   ise işlem2'yi yapıyor. 

else                               eğer hiçbir şart doğru değilse else'in altında yazan işlemi gerçekleştirir

    işlem3

end


Not ortalaması örneği

clear all,clc

vize=input('vize notunuz: ');

final=input('final notunuz: ');

ortalama=(vize*0.4)+(final*0.6);

 

if ortalama>=81

    disp('harf notu =AA');

elseif ortalama>=77 && ortalama<=81

    disp('harf notu=AB');

else

    disp('dersi geçemediniz');

end;

 


Sayının çift veya tek olduğunun bulunması:

clear all,clc

sayi=input('bir sayi giriniz: ');

if mod(sayi,2)==0

    fprintf('girilen sayi çifttir\n')

else 

    fprintf('girilen sayi tektir\n');

end



Mod komutu; mod(a,b) ile a'nın b'ye bölümünden kalanı buluyor.



örnek


clear all,clc

nakit=input('ne kadar paran var: ');

if nakit>=50

    disp('elma al')

elseif nakit>30 && nakit<50

    disp('portakal al')

else

    disp('hiçbir şey alma')

end

 



Switch-case yapısı

giriş ifadesi, her bir case değeri ile karşılaştırılır.

switch giris_ifadesi 

case ifade1

işlem 1

case ifade2

işlem 2

.

.

otherwise

işlem n

end

Haftanın gününü bulma:

gun=input('hangi gündeyiz: ');

switch gunler         #(gunler) olarak da yazabiliriz

case 1 

disp('pazartesi')

case 2 

disp('salı')

case 3

disp('çarşamba')

case 4

disp('perşembe')

case 5

disp('cuma')

case 6

disp('cumartesi')

case 7 

disp('pazar')


Sayı Yuvarlama Fonksiyonları

fix(sayi) = sıfıra yakın ilk tam sayıya yuvarlıyor

sayi1=fix(3,3)                                                          

sayi1=3

sayi2=fix(-5.9)                                                          

sayi2= -5


round(sayi) =kendisine en yakın tam sayıya yuva

sayi3=round(3.1)

sayi3= 3

sayi4=round(-9.85)

sayi4= -10


ceil(sayi) = +sonsuza doğru karşılaştığı ilk tam sayıya yuvarlanıyor.

sayi5=ceil(8.1)

sayi5=9


floor(sayi) = -sonsuza doğru karşılaştığı ilk tam sayıya yuvarlanıyor.

sayi6= floor(6.8)

sayi6=6


rastgele sayı

rastgele_sayi=rand

sifir_ile_on_arasinda_rastegele_sayi=10*rastgele_sayi


rand(3,3)   3x3lük rastgele sayılı matris


rand(4)  4x4 lük


Döngüler

for döngüsü

for döngü değişkeni =başlangıç değeri: artım miktarı: bitiş değeri

işlem

end

örnek

clear all,clc

ad_soyad=input('adınızı ve soyadınızı giriniz: ','s');

tekrar_sayisi= input('ekranda kaç defa yazılsın :');

for i=1:1:tekrar_sayisi

    fprintf('%s\n',ad_soyad)

end


örnek

clear all,clc

giris=input('kaça kadar sayıları toplasın');

toplam=0;

for i=1:1:giris

    toplam=toplam+i;

end

fprintf('toplam =%f',toplam)


% yorum satırı (yorum satırına yazdığımız ifadeler matlab tarafından okunmaz)


while döngüsü

while(1) = hep doğru olduğu için altında yazan işlemleri yapmayı sonsuza kadar sürdürür. Sonsuz döngüye girer.

koşul yerine yazacağımız değişkeni yukarıda tanımlıyoruz.

while(sayac<10)

işlem

sayac=sayac+1

end

break komutu while döngüsünden çıkmak için kullanılır.

continue komutu kullanıldığı yerde döngü bloğunun işlemi yapmadan başa dönmesini sağlar.



shift+enter aynı isimli değişkenlerin ismini topluca değiştirebiliyoruz.

Yorumlar

Bu blogdaki popüler yayınlar

GİS Anatomisi

Manga Tavsiyesi - JoJo's Bizarre Adventure Part 1 - Phantom Blood

Oyun Tavsiyesi - Tasokare Hotel