You are on page 1of 37

MATLAB

Giriş

Mehmet Ali Çağrı TUNCER

TOBB Ekonomi ve Teknoloji Üniversitesi


Elektrik-Elektronik Mühendisliği Bölümü
matuncer@etu.edu.tr
GİRİŞ
2

 MATLAB, yüksek performanslı bir teknik


programlama dilidir.
 İsmi, MATrix LABoratuary ‘den gelmektedir.
 Yapılan tüm girdiler ve çıktılar, diğer programlama
dillerindeki belirteçleri gerektirmeksizin bir matris
tanımlar.
 Fortran, Basic, C gibi dillere kıyasla işlemlere ve
programlamaya ayrılacak zamanı minimuma indirger.
KULLANIM ALANLARI
3

Matlab programının tipik kullanım alanları:


 Matematiksel (nümerik ve sembolik) hesaplama işlemleri
 Algoritma geliştirme ve kod yazma, programlama
 Lineer cebir, istatistik,Fourier analizi,
filtreleme,optimizasyon,sayısal integrasyon vb.
konularda matematik fonksiyonları
 2D ve 3D grafiklerinin çizimi
 Modelleme ve simülasyon (benzetim)
 Grafiksel ara yüz oluşturma
 Veri analizi ve kontrolü
 Gerçek dünya şartlarında uygulama geliştirme
şeklinde özetlenebilir.
KULLANIM ALANLARI
4

 MATLAB programını C/C++ diline dönüştürebilir,


 20. dereceden bir denklemin köklerini bulabilir,
 100x100 boyutlu bir matrisin tersini alabilir,
 Bir elektrik motorunu gerçek zamanda kontrol
edebilir,
 Bir otobüsün süspansiyon simülasyonunu
yapabilirsiniz.
MATLAB KULLANAN KURUMLAR
5

 Matlab,farklı sahalardaki kişilerden gelen taleplerle kendini


geliştirmiş ve şu an 500.000’nin üzerinde endüstri, devlet
ve akademik kurumlarda kullanılmaktadır.

 Boeing, DaimlerChrsyler, Motorola, NASA, Texas


Instruments, Toyota , Quantum, Saab vb,
 Aselsan, Tofaş, Arçelik, Siemens, Alcatel, Garanti
Bankası, Deniz Kuvvetleri, vb.
şirketler MATLAB kullanan şirketlere örnek olarak
verilebilir.
MATLAB ‘IN AVANTAJLARI
6

 KULLANIM KOLAYLIĞI;

 MATLAB’ın sahip olduğu kolay kodlama algoritması ile


yeni programlar çok hızlı bir şekilde
oluşturulabilmektedir.

 MATLAB’ın geliştirme araçları da program geliştirmeyi


ve MATLAB ‘ı kullanmayı kolaylaştırmaktadır.
Derleyici/Ayıklayıcı, online dokümantasyon ve
kitapçıklar, çalışma alanı ve demolar bu araçları
oluşturmaktadır.
MATLAB ‘IN AVANTAJLARI
7

 İŞLETİM SİSTEMİ UYUMLULUĞU;

 MATLAB, birçok işletim sisteminde hatasız biçimde


çalışmaktadır.

 95/98/NT/2000/XP/Vista/Windows 7 ve Unix tabanlı


birçok işletim sistemine uyumlu versiyonları vardır.

 Herhangi bir işletim sisteminde yazılmış veri dosyaları


diğer işletim sistemlerinde de sorunsuz yürütülmekte,
kullanıcıya işletim sistemi güncelleme özgürlüğü
sunmaktadır.
MATLAB ‘IN AVANTAJLARI
8

 HAZIR FONKSİYONLAR;
 MATLAB, bir çok teknik probleme karşılık veren ve
öncede yazılmış geniş bir fonksiyon kütüphanesiyle
birlikte sunulmaktadır.

Örnek;
 Ortalama ve maksimum değer bulmak için çoğu
programlama dilinde birçok ‘for’ ve ‘while’ döngüleri
kullanılmalı.
 MATLAB ‘da sadece ‘mean’ ve ‘max’ komutları ile
bulunabilir.
MATLAB ‘IN AVANTAJLARI
9

 DONANIM KISITLAMASIZ GÖRÜNTÜLEME;

 Diğer programlama dillerine göre, MATLAB bir çok


önemli görüntüleme ve çizim komutu içermektedir.

 Bu özellik, görüntü teknik veri işlemede MATLAB ‘ın


üstünlüğünü ortaya çıkarmaktadır.
MATLAB ‘IN AVANTAJLARI
10

 GRAFİKSEL KULLANICI ARAYÜZÜ


GELİŞTİRME;

 Grafiksel Kullanıcı Arayüzü geliştirme eklentisi


(Graphical User Interface – GUI), MATLAB diliyle
deneyimsiz kullanıcılara teknik veri işleme ve
görüntüleme imkanı sağlar.
MATLAB ‘IN AVANTAJLARI
11

 MATLAB DERLEYİCİSİ (Compiler)

 MATLAB derleyicisi, MATLAB ile geliştirilen


uygulamaları MATLAB’ın yüklü olmadığı sistemlerde de
çalıştırılabilir hale getirmektedir.

 Örnek;
 Windows işletim sistemlerinde MATLAB Derleyicisi
kullanarak “.EXE” uzantılı Win32 uygulamaları elde
edilebilir.
MATLAB’ın Dezavantajları
12

 MATLAB ÜRÜN FİYATI


 Basic, Fortran,C gibi proglamlama dilleri derleyicilerine
göre 5 veya 10 misli daha pahalıdır

 UYGULAMALARIN BAŞLATILMA SÜRESİ;


 MATLAB uygulamaları, diğer programlama dillerine
göre daha geç açılmaktadır.
DİKKAT EDİLMESİ GEREKEN HUSUSLAR
13

 Programın dili ve yardım bilgileri tamamen ingilizcedir.

 Küçük-büyük harf ayrımı vardır. x ve X farklı algılanır.

 Komutlar Enter ile yürütülür.


SAYISAL HESAPLAMA
14

 Komut penceresi (Command Window) sayısal


hesaplamalar için kullanılabilir.

 Örnek;
>>4+5 [enter] ‘ basarsak...

>>9
 “+” toplama
 “-” çıkarma
 “*” çarpma
 “/” bölme
DEĞİŞKENLERE DEĞER ATAMA
15

 Eğer bazı değerleri daha sonra MATLAB’da


kullanmak istersek, değerler değişkenlere atanmalıdır.
Bu iş “ = “ ile yapılabilir.
 Örnek;
>>a=8;
>>b=9;
>>c=a*b
>>c=72
 Not; Bir ifade = işareti ile bir değişkene atanmamış ise Matlab otomatik
olarak sonucu, ans (answer) adı verilen özel bir değişkende saklar.
DEĞİŞKENLER
16

 Değişken adları, bir harf ile başlamalı ve onu takiben


herhangi sayıda harfler, rakamlar veya altçizgiden
oluşabilir.

Değişken adlarında küçük veya büyük ç ı ö ü ğ ş Türkçe


karakterleri kullanılamaz.

 Küçük-büyük harf duyarlıdır; x ve X veya cgr ve CGR ,


farklı değişken adlarıdır.
KULLANIM
17

 Bir ifadenin sonuna ; (noktalı virgül) işareti eklediğinizde


yapılan işlemin sonucu ekrana (Command Window)
yazılmaz.

 Birden fazla ifade tek satırda aralarına , ya da ; koyarak


yazılabilir. Yazımda boşluk sayısı etkisizdir.

 Sadece ilgili değişken adını yazarak o değişkeni


çağırabilirsiniz (Bunu yaparken küçük-büyük harflere
dikkat edin!!!).
SAYILAR
18

 Ondalık sayılar Türkçe’deki 7,3 yerine 7.3 şeklinde


gösterilir.

 Bilimsel notasyon gösterimi olan e (veya E) harfi 10’nun


kuvvetini temsil eder.
2e4=2.104=2000 veya 1.65e-20=1.65.10-20 demektir.

 Kompleks sayılarda imajiner (sanal) kısımlar i veya j ekini


alır. i veya j ile gosterimlerinde bir fark yoktur.
(1+3i veya 1+3*i veya 1+i*3)
Fakat;
1+i3 yanlıştır!!!
VEKTÖRLER
19

 “ : ” önemli bir karakterdir


 >> x=6 : 9
x=
6 7 8 9
 >>x=6 : 0.5 : 9 ( x = 6 6.5 7 7.5 8 8.5 9 )
 >> x=9 : -1 : 6 (x=9 8 7 6)
 Düzensiz artan-azalan vektör oluşturabilmek için [ ]
kullanılır;
 >>x=[1 3 4 6]; (x = 1 3 4 6 vektörü oluşturuldu)
MATRİSLER
20

 Matrisler, vektörler gibi oluşturulur. Matrisin 2.


satırına geçmek için ; (noktalı virgül) kullanılır.

 Örnek;
>> x=[1 2 3 ; 4 5 6 ; 7 8 9]
x=
1 2 3
4 5 6
7 8 9
MATRİSLER
21
MATRİSLER
22

Hem vektörler hem de matrisler Utility fonksiyonlar


(zeros,ones ve rand) kullanarak da oluşturulabilir:

 zeros(1,n) veya zeros(n,1)


 zeros(n)
 zeros(n,m)
 zeros(size(kd))

 ones(1,n) veya ones(n,1)


 ones(n)
 ones(n,m)
 ones(size(kd))
MATRİSLER
23

Dizilere fonksiyonları uygulama:


A(n,:): A matrisinin sadece n. Satırı
A(:,n): A matrisinin sadece n. Sütunu
A‘: A matrisinin transpozu yani devriği
 det(A): A matrisinin determinantı
 inv(A) : A matrisinin tersi
 diag(A): A matrisinin ana diagonel (çapraz) elemanları
 [v,d]=eig(A): A matrisinin özvektörleri ve özdeğerleri
 Elemanter işlemler eleman elaman işlem demektir ve .
(nokta)işleci kullanılır:
Çarpma: .* , Bölme: ./ , Üs alma: .^
Fonksiyon Örneği
24

 y=2x +1 fonksiyonunun x [-2, 2] aralığındaki değerleri


için çözümü;

 >>x=-2:.1:2;
 >>y=2*x+1;

 Her değişik x değeri için y sonuçlarını verir.


GRAFİK
25
2D Grafik
26

 x-y dik koordinat düzleminde grafik çizmek için


plot(x,y)
fonksiyonu kullanılır. Bu, x vektörüne karşı y vektörünün
grafiğini verir. Yani x değerleri x-ekseninde, y değerleri y-
ekseninde yer alır.

 Not;Çizimin görünümünü değiştirmek isterseniz


plot(x,y,’r’)
MATLAB’ta help plot derseniz, çizdirme seçeneklerini
inceleyebilirsiniz.
2D Grafik Örneği
27

 Örnek;
 Vektörün grafiksel gösterimi için;
 >> x=1:.2:6;
 >>plot(x)

 Örnek;
 Ya da ;
 >>t=-pi:.1:pi;
 >>y=sin(t)
 >>plot(t,y)
2D GRAFİK
28

 Birden fazla grafiği (aynı x-ekseni baz olmak üzere) üst


üste çizdirmek için;
Örneğin;
x,y1,y2 vektörleri için;
plot(x,y1)
hold on
plot(x,y2)
 Not; plot(x,y1) ile ilk grafiği çizdirdikten sonra grafiği
kapatmadan hold on ve diğer plot komutunu kullanın!!
2D Grafik Örneği
29

 Örnek;
>>t=-pi:.1:pi;
>>a=sin(t)
>>b=cos(t)
>>plot(t,a,’r’)
>>hold on
>>plot(t,b,’*’)

 İki figür aynı x-y grafiğinde çizdirildi mi?


2D GRAFİK
30

Ayriyeten, çizdirdiğimiz grafiklere başlık,x ve y eksenlerinin


ne olduklarına dair açıklama yazdırabilirsiniz.
title; başlık eklemek için kullanılır
>>title(‘sin(t) graphics’)
xlabel; x eksenine isim vermek için kullanılır.
>>xlabel(‘zaman ekseni’)
ylabel; y eksenine isim vermek için kullanılır.
>>ylabel(‘y ekseni’)
2D GRAFİK
31

 Birden fazla grafiği farklı pencerelerde (aynı veya farklı x-


ekseni baz olmak üzere) çizmek için
subplot(m,n,p)

fonksiyonu kullanılır. Bu fonksiyon matris düzeninde çizim


alanı açar ve grafikler yine plot fonksiyonu ile çizilir.

Not; Daha ayrıntılı bilgi için;


>>doc subplot
2D Grafik Örneği
32
M-File örnek
33

 [1 - 5] saniye zaman aralığında y=cos(t) için zaman-y


grafiği çiziniz?
 File → new menu → m-file → Dosya adı : örnek.m
t=1:0.1:5;
y=cos(t);
plot(t,y)
tittle(‘cos(t) grafiği’)
xlabel(‘zaman’)
ylabel(‘y’)
 Command window’a dosya adını (örnek) yazıp enter’a bas.
 Kendi fonksiyonunu ürettin!
MATLAB’da Yardım
34

 Fonksiyon hakkında yardım, nasıl kullanıldığını vb.


öğrenmek için;

 Matlab → menu bar → help → Product help (F1)


 doc command name

 Ya da,
 help command name
Alıştırma Soruları
35

 m-file ‘ları kullanarak aşağıdaki fonksiyonlar için


zaman – x grafiklerini çizdiriniz.

 a) x=2*t^2+1; 0.1 artış ile -2<t<2 aralığında


 b) x=2*t^3-1; 0.1 artış ile -2<t<2 aralığında
 c) x=cos(t)*t^2+1; 0.1 artış ile -1<t<2 aralığında
Alıştırma Soruları
36

 Değişken atayarak aşağıdaki hesaplamaları


yapınız.

 a) 2*cos(5)+9
 b) 5*tan(pi)+2
37

TEŞEKKÜRLER

Mehmet Ali Çağrı TUNCER


matuncer@etu.edu.tr
Elektrik-Elektronik Mühendisliği Bölümü
Z–11 Haberleşme Laboratuvarı

You might also like