instagram twitter linkedin github youtube

9.1.18

MATLAB (MATrix LABoratuary)

MATLAB, yüksek performanslı bir uygulama yazılımı ve bir programlama
dilidir.
MATLAB’in temelindeki yapı, boyutlandırma gerektirmeyen matrislerdir.
Yaptığımız tüm girdi ve çıktılar, belirteç gerektirmeksizin bir matris
tanımlar.
İlk olarak Fortran dili ile yazılan MATLAB, daha sonra C ile yazılmıştır.

Matlab’de hazır programlar vardır. Bu programlara fonksiyon adı
verilir.
Matlab fonksiyonlarının kullanımı, matematikteki y=f(x) fonksiyonunun
kullanımıyla özdeştir.

Örneğin, a=sin(x) fonksiyonunda, sin fonksiyonu, x açısının (input-
girdi) değerini hesaplar; kullanıcı bu değeri, örneğin, bir a değişkenine

atar. a değeri sin fonksiyonunun bir çıktısıdır (output).

Avantajları:
Kullanım kolaylığı,
İşletim sistemi uyumluluğu,
Sayısal analiz işlemlerindeki kolaylıklar,
Hazır fonksiyonlar (function files),
Görüntüleme (visualization) kolaylığı (grafik çizim),
GUI geliştirme kolaylığı,
MATLAB derleyicisi (exe: executable dosya ile win32 uygulamaları),
Toolboxes (Araç kutuları) :hazır programlar!

Temel Komutlar

clc Command window’u temizler.
clear İlgili oturumda atanmış tüm değişkenleri siler.
clear a Yalnızca “a” değişkenini siler.
demo Matlab demosunu çalıştırır.
date Gün-Ay-Yıl’ı görüntüler (Örneğin, 17-Oct-2009)
exit Matlab oturumundan çıkar.
help Yardım menüsünü açar.
help f_na f_na fonksiyonu hakkında bilgi verir.
save d a a değişkenini d dosya ismiyle mat uzantılı olarak kaydeder.
load d a değişkenini d dosyasından geri çağırır.

Temel Dosya Türleri

*.m MATLAB program dosyaları

*.fig Grafik dosyaları ve GUI’lerin grafik parçaları

*.mat Değişken ve matris dosyaları

*.p pre-parsed pseudo-code dosyaları (bu dosyaların içeriği
görüntülenemez ancak program olarak çağrılabilir, yani MATLAB’de
çalıştırılabilir!)

Matris ve vektörler [ ] köşeli parantezleri ile tanımlanır.
Matris ve vektör girmenin 3 farklı yolu vardır:
Örneğin:

A=[1   3  5  ]
     [7   8 11 ]
     [10 1  4   ]
matrisin yazılışı
A=[1 3 5;7 8 11;10 1 4]

Temel Lineer komutları

inv(a) Bir a kare matrisinin tersini (inversini) alır.
a’ a matrisinin devriğini (transpozesini) alır.
det(a) a matrisinin determinantını hesaplar.
a+b Boyutları aynı olan a ve b matrisini toplar.
a-b Boyutları aynı olan a ve b matrislerinin farkını alır.
a*b Sütun sayısı m olan a matrisiyle satır sayısı m olan b matrisini çarpar.
a/b b düzenli kare bir matrisse (determinantı sıfırdan farklıysa), aynı boyutlu

a matrisiyle; a*inv(b) işlemini yapar.

a.*b Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı olarak

çarpar.

a./b Boyutları aynı olan a ve b matrislerinin elemanlarını karşılıklı oranlar.
trace(a) Bir a matrisinin izini (köşegen elemanlarının toplamını) hesaplar.
diag(a) Bir kare a matrisinin köşegen elemanlarını bir sütun vektöre atar. Ya da
a bir vektör ise köşegenleri bu vektörün elemanlarından oluşan bir
köşegen matris oluşturur.

sum(a) a matrisinin her bir sütununun toplamını hesaplar. a bir vektör ise

sonuç, vektör elemanlarının toplamı olur.
triu(a) Bir matrisin üst üçgen matrisini oluşturur.
tril(a) Bir matrisin alt üçgen matrisini oluşturur.
zeros(m,n) m×n boyutlu sıfır matrisi oluşturur.
ones(m,n) m×n boyutlu elemanları “1” olan matris oluşturur.
eye(m) m×m boyutlu birim matris oluşturur.

a(:) a matrisinin sütunlarının ard arda dizilmesinden oluşan bir sütun

vektör oluşturur (vec operatörü)
a(:,i) a matrisinin i. sütununu alır.
a(j,:) a matrisinin j. satırını alır.
a(:,[i j]) a matrisinin i ve j. sütununu alır.
a([i j],:) a matrisinin i ve j. satırını alır.
e=a:b:n a, (a+b),...,n sayılarından oluşan bir satır vektör oluşturur.

Temel Matris Komutları

length(a) a matrisinin sütun sayısını verir. a bir vektör ise sonuç, a vektörünün

eleman sayısıdır.

[m,n]=size(a)a matrisinin satır sayısını (m) ve sütun sayısını (n) verir.
max(a) Bir a vektörünün en büyük elemanını gösterir.
min(a) Bir a vektörünün en küçük elemanını gösterir.
[m,i]=max(a) Bir a sütun vektörünün en büyük elemanını (m) ve bunun satır

numarasını verir.

[m,i]=min(a) Bir a sütun vektörünün en küçük elemanını (m) ve bunun satır

numarasını verir.

sort(a) Bir a vektörünün elemanlarını küçükten büyüğe sıralar.
a(:,i)=[] A’nın i. sütununu siler.
a(i,:)=[] A’nın i. satırını siler.

if (eğer) yapısı bir koşulun gerçekleşmesi durumunda bir işlemi yaptırmak için sıklıkla kullanılır.
Bu ifade,

if koşul
işlem
end

biçimindedir.

for,end döngüsü bir işlemin birden daha fazla sayıda yaptırılmasında kullanılır. (Örneğin, kök bulma problemlerinde kullanılan iterasyon çözümleri). Kullanımı,

for i=1:n (i→Tam sayı (integer))
işlem
end
biçimindedir.

Örnek: 1’den N’ye kadar olan sayıların toplamını yapan bir program düşünelim.

clear,clc
N=input('bir sayi giriniz=');
say=0; %sayac
for i=1:N
say=say+i; %birikimli (kümülatif toplam)
end
say


while,end döngüsü, belirli bir durumun gerçekleşmesi durumunda bir işlemin birden
daha fazla sayıda yaptırılmasında kullanılır.

done=0;
while done==0
işlem
end

Örnek: 1’den N’ye kadar olan sayıların toplamını while,end döngüsü ile yapan bir
program düşünelim.
clear,clc
N=input('bir sayi giriniz=');
say=0; i=0;done=0;
while done==0
i=i+1; %bir önceki örnekte for,end döngüsündeki “i” ye karşılık gelir.
if i==N
done=1;
end
say=say+i;
end
say


Matlab’de en temel çizim fonksiyonu plot’dur.
Örneğin, x=0:0.1:5 olan bir dizi vektör elemanlarına karşılık, y=x.^3+x.^2
fonksiyon değerleri hesaplatılsın.
plot(x,y) ile aşağıdaki grafik çizdirilir.

Çizilen grafiğin üzerinde birçok değişiklik
yapmak mümkündür.
Bunun için “Edit plot” düğmesi tıklanır.
İlgili nesne (çizdirilen eğri, eksenler vb.) iki
kez tıklanarak beliren “Property Editor”
penceresinden istenilen değişiklikler
yapılabilir.
Property Editor penceresinden yapılan her
türlü değişikliği, komut olarak yaptırmak
mümkündür.
Örneğin, plot(x,y,'-o') hem ardışık
noktaları şekildeki gibi birleştirir, hem de
x,y nokta çiftlerini grafik üzerinde bir “o”
sembolü ile işaretler.


Aynı eksen takımına farklı grafikleri çizdirmek için hold on ve hold off komutları
kullanılır. Bu iki komut arasına yazılan her türlü grafiğin çizimi aynı eksen
takımında gösterilir.
Örneğin, ya=[1;1.2;2.4;4.5] ve yb=[0.5;0.8;1.8;0] vektörleri ile ifade
edilen iki farklı ölçü grubunu x=[1;2;3;4] vektörüne göre aynı eksen takımında
çizdirmek için aşağıdaki komutları yazmak yeterlidir:
hold on, plot(ya), plot(yb,'r'),hold off

Not: Eğer x ekseni, bu örnekte
olduğu gibi, y değerlerinin indisini,
yani kaçıncı değer olduğunu,
gösteriyorsa, plot fonksiyonunda
x’in yeniden belirtilmesine gerek
yoktur.

Temel Komutlar
help y Bir y fonksiyonu için yardım
clear Atanan tüm değişkenlerin

silinmesi

clear x Bir x değişkeninin silinmesi
pwd Çalışma klasörü yolu
demo Matlab demo penceresi
save Matris kaydetme
load Matris geri çağırma
clc Çalışma penceresinin
temizlenmesi
Matematiksel Operatörler
+ Toplama
- Çıkarma
* Çarpma
/ Bölme
^ Üst alma
.* Elemanter çarpım
./ Elemanter bölme
.^ Elemanter üst alma
sqrt Kök alma
abs Mutlak değer
Mantıksal Operatörler
& Ve
| Veya
~ Değil
/ Bölme
Karar Operatörleri
> Büyüktür
< Küçüktür
>= Büyük eşittir
<= Küçük eşittir
== Eşittir
~= Eşit değildir

Semboller
% Açıklama getirme ifadesi
[ ] Matris girme ifadesi
( ) İndis ve değer girme ifadesi
= Değişken atama ifadesi
; Matrislerde satır ayıracı.
Ayrıca, içinde "=" bulunan
bir işlemin gösterilmemesi

: Kolon ifadesi
ans Değişken atanmamış en son
işlem için varsayılan
değişken ismi (answer)

{ } Hücre dizisi
x.adi x yapı dizisi
Sabit terimler
pi π sayısı
eps 2.2204e-016 sayısı
inf Sonsuz (belirsiz) ifadesi
Trigonometrik Fonksiyonlar
sin,cos,tan,cot Trig. Fonksiyonlar
asin,acos,atan,acot Ters Trig. ifadeler
Logaritmik Fonksiyonlar
log Doğal logaritma
exp Eksponansiyel
Lineer Cebir Fonksiyonları
det(x) Bir x matrisinin determinantı
inv(x) Bir x matrisinin tersi
trace(x) Bir x matrisinin izi
diag(x) Bir x matrisinin köşegen

elemanları

diag(y) Köşegenleri, bir y vektörünün
elemanları olan köşegen matris

zeros Sıfır matris
ones Birler matrisi
eye Birim matris
eig Özdeğer ve özvektör bulma

Matlab Hızlı Erişim Kılavuzu

2

Yazdırma Fonksiyonları
fprintf Bir ifadenin yazdırılması
sprintf Bir ifadenin bir karakter dizisine

atanması

disp Bir ifadenin ekran çıktısı olarak

gösterilmesi
Karakter dizisi fonksiyonları
num2str(x) Bir x sayısını bir karaktere

atama

str2num(x) Karakter olan bir x sayısını
sayı değerine atama
char(a) a hücresini bir karaktere

atama

char(s1,s2,...) s1,s2,... karakterlerinden
yeni bir karakter dizisi
oluşturma

lower(s) Bir s karakter dizisinin tüm
elemanlarını küçük harf
yapma

upper(s) Bir s karakter dizisinin tüm
elemanlarını büyük harf
yapma

isnumeric Bir değişkenin sayı olup
olmadığını sorgulama
ischar Bir değişkenin karakter
olup olmadığını sorgulama
iscell Bir değişkenin hücre olup
olmadığını sorgulama

Hazır GUI'ler

msgbox İleti penceresi
inputdlg Değer girme penceresi
questdlg Soru diyalog penceresi
uigetfile Open file diyalog penceresi
uigetdir Open directory diyalog pen.
Uiputfile Save file diyalog penceresi
Sayı yuvarlatma fonksiyonları
fix Sıfıra yuvarlatma
floor Negatif sonsuza yuvarlatma
ceil Pozitif sonsuza yuvarlatma
round En yakın tam sayıya
yuvarlatma

Bazı matematiksel fonksiyonlar
sum(x) Bir x vektör elemanlarının

toplamı

diff(x) Bir x vektör elemanlarının
ardışık farklandırılması
mean(x) Bir x vektör elemanlarının

ortalaması

median(x) Bir x vektör elemanlarının
orta değeri (medyanı)
sort(x) Bir x vektör elemanlarının
küçükten büyüğe sıralanması
max,min En büyük ve en küçük değer

bulma

sortrows İlgili sütuna göre küçükten
büyüğe sıralama

Programlama
if/end Eğer koşulu
for/next Döngü
while/end while döngüsü
input Değişken girdirme
Çizim
plot 2 boyutlu grafik
plot3 3 boyutlu grafik
hist,bar Histogram ve bar grafikleri
surf,mesh Yüzey grafikleri
figure Çizim penceresi oluşturma
(İki veya daha fazla sayıdaki
grafikleri ayrı pencerelerde
göstermek için)

hold on,
hold off

Farklı grafikleri aynı eksen
takımında çizdirme
komutları
axis Eksen komutu
axis equal Eksenleri eşit ölçek katsayısı

ile ölçeklendirme
stem Çubuk grafik
plotyy Çift y eksenli grafik
errorbar Hata bar grafiği