You are on page 1of 44

m

ri.
co
tla
sn
o
m
de
r
.e
e
w

w
DZENLEME : 11
22.12.2013
www.muhammetcagatay.com
Sayfa - 0 -

NDEKLER : ____________________________________________________

SAYFA NO

MATLAB HAKKINDA GENEL BLGLER... 3


MATLAB VE DEKENLER..... 3

DEKEN TANIMLAMA KURALLARI .... 3

ri.
co

OPERATRLER.. 4
MATEMATKSEL FONKSYONLAR.... 4

DEKEN TPLER..... 4

SAYI FORMATLARI..... 5

tla

ZEL DEER VE FONKSYONLAR..... 5


BR DEKENE DIARIDAN DEER ATAMA.... 5

sn
o

DZLER...... 6
MATLABDA VEKTR OLUTURMAK... 6
DZ LEMLERNDE KULLANILAN TEMEL FONKSYONLAR.. 7

m
de
r

MATLABDA PROGRAMLAMA.. 8
SONU YAZDIRMA ( IKTI VERME ) ..... 9
KARILATIRMA OPERATRLER .................................................................................................9
F KOUL YAPISI ........................................................................................................................10
ELSE F KOUL YAPISI ................................................................................................................12

.e
e

FOR DNGS ..........................................................................................................................13


E DNGLER .......................................................................................................................15
WHLE DNGS .................................................................................................................16

BREAK VE CONTNUE DEYM................................................................................................................16

SWTCH CASE KARAR YAPISI...............................................................................................................18


TRY CATCH YAPISI.................................................................................................................19
PROGRAMI SONLANDIRMAK ( RETURN VE ERROR )................................................................20
MATLABDA MATRS LEMLER................................................................................................20

www.muhammetcagatay.com
Sayfa - 1 -

RNEK UYGULAMALAR 1............................................................................................................24


YER DETRME ALGORTMASI............................................................................................................28
SIRALAMA ALGORTMASI.....................................................................................................................29

MATLABTA FONKSYON OLUTURMAK VE PROGRAMA AIRMAK.....................................................31

ri.
co

KABARCIK SIRLAMA ( BUBLE SORT ) ALGORTMASI......................................................35

MATLABDA KULLANILAN BAZI YUVARLAMA VE STRNG FONKSYONLARI.37

.e
e

m
de
r

sn
o

tla

MATLABDA TABAN ARTMET LEMLER.42

www.muhammetcagatay.com
Sayfa - 2 -

ri.
co

Matlab; c , c++ , fortran gibi geleneksellemi dillerin aksine , matrislere dayal olarak, bilim
adamlar ve mhendislere problem zmeye yardmc olan, yksek performansl bir paket
programdr.
1. Matris laboratuar olarak da isimlendirilir.
2. Matlab bir yorumlaycdr yani sonu bir hesap makinesi tarznda ekrana yazl bir
metin olarak dndrlr.
3. Dier dillerde olduu gibi bir derleyiciye (decompliere) ihtiya yoktur.
4. Matlab alm ngilizce MATrix LABoratoryden gelmektedir.
Matlab kullanarak;

Matematiksel hesaplamalar,
Algoritma gelitirme ve kod yazma (programlama),
Grafiksel arayz (GUI) oluturma,
Modelleme ve simlasyon (benzetim),
Resim ileme, 2D ve 3D grafiklerinin izimi
Veri analizi,
Lineer cebir, istatistik, Fourier analizi, filtreleme, optimizasyon, saysal integrasyon
vb. konularda hazr matematik fonksiyonlara ulam,
8. Gerek dnya artlarnda uygulama gelitirme kolaylkla yaplabilir.

MATLAB VE DEKENLER

sn
o

tla

1.
2.
3.
4.
5.
6.
7.

.e
e

m
de
r

1. Matlabda dier programlama dillerinden farkl olarak her ey bir matris olarak
dnlr.
2. Deikenler matlab deyimleri ierinde saysal deerlerin yada metinlerin (string)
yerini alan ifadelerdir.
3. Matlab, bir deiken ile karlatnda otomatik olarak deiken oluturur ve yeteri
kadar bellek ayrr. Eer deiken daha nce zaten oluturulmu ise yalnzca ierii
deitirilir ve gerekiyorsa yeni bellek ayrr.
4. Dier dillerde olduu gibi matlabn da deikenler konusunda kat kurallar vardr.

DEKEN TANIMLAMA KURALLARI

1. Deiken isimleri byk kk harf kullanmna duyarldr. Yani orta , Orta , ORTA ,
oRTa drd de farkl deikenlerdir.
2. Deiken isimleri 63 karakter ierebilir, 63 ten sonrasn derleyici dikkate almaz.
3. Deiken isimleri rakam ile balayamaz. rnek 1sayi yerine sayi1 demelisiniz.
4.
5.
6.
7.

Deikenlerin arasnda boluk kullanlmaz. sayi 1 yerine sayi_1 kullanabilirsiniz.


Deiken tanmlanrken Harf, rakam ve alt izgi _ den baka karakter kullanlmaz.
Deiken tanmlanrken Trke karakterler ( , , , , , ) kullanlmaz.
Matlabda rakamlar iin + veya iareti ve ondalk noktas ( . ),
Sanal rakamlar iin i veya j
Kuvvet belirtmek iin ise e harfi kullanlr ( rnek : e2 = 102 =100)

www.muhammetcagatay.com
Sayfa - 3 -

2+3
2-3
2*3
2/3
2^3
2*(5+3)

ri.
co

+
*
/
^
()

OPERATRLER
toplama
karma
arma
blme
st alma
parantez
&& = ve operatr

|| = veya operatr

tla

Not 1 : toplam = toplam + 1 toplam deerini 1 arttrr. toplam++ diye bir ifade yoktur !
Not 2 : Matlabda matematikteki ilem ncelik sras aynen geerlidir. ( yukardaki tabloya
gre alltan ste doudur. )

m
de
r

sn
o

MATEMATKSEL FONKSYONLAR
Fonksiyonlar matlabta temel programlama aralardr ve matlabn kendi hazr fonksiyonlar
bulunduu gibi, kullanc endi fonksiyonunu kendisi de yazabilmektedir.
sins
sin
sin(x)
kosins
cos
cos(pi)
tanjant
tan
tan(pi)
arksins
asin
asin(pi)
2
stel (e , e^x)
exp
exp(2)
10
Doal logaritma ln ( log e )
log
log(10)
10 tabanl logaritma
log10
log10(10)
karekk
sqrt
sqrt(b)
Mutlak deer
abs
abs(3)
Log5(x) =
Log10 (x) / log10 (5) Taban deitirme
Not 3 : Trigonometrik fonksiyonlar a deerlerini radyan cinsinden alrlar, dereceye

.e
e

evirmek iin

forml kullanlr.

rnek 1 : ab c + d b + da = a*b c + d b + d*a

rnek 2 : a/b + 3 - b * d2 + 2ab / b2 = a/b + sqrt (c^3) b * (d^2) + (2*a*b) / (b^2)

MATLABDA DEKEN TPLER


Matlabda bir deien tipi matris, vektr (satr veya stn ) , string (karakter dizisi ) , skaler
(numerik yada karakter) lerden birisi olabilir.
Bu tiplerin her biri, bir matris olarak dnlebilir, her deikenin 2 tane parametresi vardr.
Double : skaler yada vektrlerden oluan saysal deikenlerdir.
Char : tek bir karakter veya karakter grubundan oluan deikendir.
www.muhammetcagatay.com
Sayfa - 4 -

MATLABDA SAYI FORMATI


Matlab bir ilemin sonucunu varsaylan olarak 4 ondalk ile gsterir ve bu gsterim istee
gre >>format fonksiyonu ile deitirilebilir. rnek say = 15.973

Virglden sonra 15 basamak yazdrr.


Virglden sonra 2 basamak yazdrr.
Sonu rasyonel say olarak dner.
Virglden sonra 4 basamak yazdrr.
Varsaylan deere dnmek iin kullanlr.

ri.
co

15.973000000000001
15.97
15973/1000
15.9730

sn
o

tla

>> format long


>> format bank
>> format rat
>> format yada
>> format short

MATLABDA ZEL DEER VE FONKSYONLAR

m
de
r

Matlabn yapsnda hazr tanmlanm ve kullanma hazr, birebir deerler ve zel


fonksiyonlar vardr. Bunlardan bazlar:
Pi saysn gsterir.
Tarihi verir.
Saati verir
Yuvarlama fonksiyonu.
Ekran temizler. ( deikenleri silmez )
Tanmlanan deikenleri gsterir.
Tanmlanan deikenleri ve zelliklerini gsterir.
Tanmlanan tm deikenleri siler.
Matlabda bir ilemin ne kadar zaman aldn gsterir.
Xx komutu hakknda yardm almak iin kullanlr. Bunun yerine xx
yazp klavyeden F1 tuuna basmak daha kolay olur.

.e
e

>> pi
>> date
>> clock
>> fix
>> clc
>> who
>> whos
>> clear
>> tic ve >>toc
>> help xx

BR DEKENE DIARIDAN DEER ATAMA

nput fonksiyonu matlaba dardan deer atamas iin kullanlr ve kullanc bir deer girene
kadar matlab ileme devam etmez.

www.muhammetcagatay.com
Sayfa - 5 -

MATLABDA DZLER

m x 1 dizisi bir vektr gsterir.


m x n dizisi bir matris gsterir.

Bir dizinin eleman says satr ile stn saysnn arpmdr.

ri.
co

1 x 1 dizisi bir skaler gsterir.


1 x n dizisi de bir vektr gsterir.

Dizi ( array ) : en genel tann ile numerik ya da metinsel deerler topluluudur. Matlabda her
ey matris olduu iin diziler de matris olarak dnlr. Dizi en temel veri elemandr.

Bir dizinin herhangi bir eleman satr ile stn numaralar ile indekslenir. [ A (2,4) ]

tla

MATLABDA VEKTR OLUTURMA

1 - DREKT OLARAK:

sn
o

Matris ve vektrler * + keli parantezleri ile tanmlanr.


Matlabda vektr tanmlamann 3 yolu vardr;

Vektor1 = [ 1 2 3 ]; yada vektor1 = [ 1, 2, 3]; = satr vektr

.e
e

m
de
r

Vektor2= [ 1 ; 2 ; 3 ]; = stn vektr

www.muhammetcagatay.com
Sayfa - 6 -

2 ET ARALIKLI ELEMANLAR KULLANARAK:


F= ilk deer : deiim miktar : son deer

rnek : F = 1 : 2 : 99 (Deiim miktar belirtilmedi ise 1 olarak alnr )


3 - ELEMAN SAYISI VE ADED BELRTEREK:

ri.
co

npace komutu ile bir aralk dorusal paralara ayrlr. Eer iki parametreli kullanlrsa 100
adet para oluturulur.
nspace ( a , b , n ) ifadesi a ve b arasnda n tane para oluturur.

tla

DZ LEMLERNDE KULLANILAN TEMEL FONKSYONLAR

Vektr ve matrisler aadaki fonksiyonlar yardm ile oluturulabilir.


>> zeros(n,1)

>> ones(1,n)

>> ones(n,1)

>> zeros(n)

>> zeros(n,n)

>> ones(n)

>> ones(n,n)

sn
o

>> zeros(1,n)

>> Rand ( m , n ) veya Rand ( n ) = 0 ile 1 arasnda deien rastgele say deeri retir.

m
de
r

Not : Rand fonksiyonu ile oluturulan say deerleri >> round fonksiyonu ile tam deere
yuvarlanabilir. 0,5 ten byk olanlarn sonucu 1 , kk olanlarn sonu ise 0 olur.
rnek : 0 ile 10 arasnda 5 tane say retmek iin >> round ( 10 * rand (1,5)) komutu
kullanlr.
>> floor (a) = a saysn tam deer olana yuvarlar. rnek : 2,87 yi 2 yapar
>> lenght (a) = a vektrnn eleman saysn verir.

.e
e

>> size (a) = a matrisinin boyutunu verir.

>> size (a,1) Satr saysn ve >> size (a,2) stn saysn verir.

>> sum (a) = a vektrnn elemanlarnn toplamn verir. Eer bu fonksiyon bir matrise
uygulanrsa her bir stundaki elemanlarn toplamn verir.

>> min (a) ve >> max (a) = a vektrnn minimum ve maksimum elemanlarn verir. Bu
fonksiyon bir matrise uygulanrsa her bir stundaki minimum ve maksimum elemanlar
buluruz.
>> det (a) = a matrisinin determinantn verir. ( karesel matrisler iin geerlidir )
>> inv (a) = a matrisinin tersini verir.

>> diag (a) = a matrisinin apraz elemanlarn verir.


>> num2str(x) = Sayy metinsel ifadeye evirir.
www.muhammetcagatay.com
Sayfa - 7 -

MATLABDA PROGRAMLAMA

Problemin belirlenmesi ( ne iin )


zm ynteminin ve admlarnn belirlenmesi ( algoritma ve akma kod )
Kodlama ( programlama diline evirme )
Snama ( test )
Gncelleme

Matlabda programlama 2 yolla yaplr;

sn
o

tla

1. Komut satrnda
2. m dosyalar ile
scripts ( dz yaz m dosyalar )
function ( fonksiyon olan m dosyalar )

ri.
co

1.
2.
3.
4.
5.

Bilgisyar programlar yazlrken genelde belli bir kalp ve kurallara uyulur. Bunlar ;

senaryo olan ( script ) dz yaz m dosyas, zel bir grevi yerine getirmek iin gerekli matlab
komutlarnn sakland bir metin dosyasdr.
Bu dosyay oluturmak ve matlab komutlarn yazmak iin editr kullanlmaldr.

m
de
r

Dier dillerin aksine matlabn kendi editr bu i iin ok kullanldr.


Deiken saysnn fazla olduu durumlarda,
Ak diyagram uygulamalarnda,
Ve Giri , k ilemlerinde, m dosyalarn kullanmak gereklidir.

.e
e

rnek : dardan girilen yarap deerine gre dairenin alan ve evresini hesaplayan
program ;

clc;
r = input(' yaricap giriniz : ');
alan = pi * r * r;
cevre = pi * 2 * r;
fprintf(' alan : %f, \n cevre : %f \n ',alan,cevre);

www.muhammetcagatay.com
Sayfa - 8 -

MATLABDA SONU YAZDIRMA ( IKTI VERME )


Matlabda ekrana bir ifadeyi yazdrmak iin disp yada fprintf komutlar kullanlr.

tla

ilemi yeni (alt ) satra atlatr.


Bir tab boluk brakr.
String ( metinsel ) deiken.
Tam saylar yazdrmak iin.
Ondalkl olarak 6 hane eklindeki reel saylar yazdrmak iin.
stel bir biimde ondalkl saylar yazdrmak iin.
%f ile %e arasnda kompakt bir biimde seim yaplarak gsterilmesini
Ondalk 5 basamak olarak sonu verir.

m
de
r

rnek kullanm :

sn
o

\n =
\t =
%s =
%d =
%f =
%e =
%g =
salar.

ri.
co

fpfrintf(); komutu daha kullanldr ve bu komut kullanlrken ;

Disp komutu genellikle disp(toplam); yada disp(' merhaba '); gibi dz bir
ifadeyi yada sonucu gstermek iin kullanlr.

rnek : Kullancdan 3 tane say isteyip toplayp ortalamasn bulan program yaznz.
giriniz ');
giriniz ');
giriniz ');
ortalamasi = %f', ort);

.e
e

clc;
a=input(' 1. sayiyi
b=input(' 2. sayiyi
c=input(' 3. sayiyi
ort=(a+b+c)/ 3;
fprintf ('sayilarin

KARILATIRMA OPERATRLER

==
>
<
<=
>=
~=

:
:
:
:
:
:

Eit midir ?
Byk mdr ?
Kk mdr ?
Kk eit midir ?
Byk eit midir ?
Eit deil midir ?

www.muhammetcagatay.com
Sayfa - 9 -

MATLABDA KONTROL FADELER

tla

ri.
co

1. F DEYM : artl dallanma ad verilen ilemi gerekletirir.

rnek : Klavyeden girilen bir saynn tamsay olup olmadn aratrnz.

m
de
r

sn
o

clc;
sayi = input(' bir sayi giriniz : ');
if (round(sayi)- sayi)==0
fprintf('say tamdr');
else
fprintf('say tam deildir');
end

rnek : kullancdan x isteyip sonucu fonksiyonlara gre bulan program yaznz.

>0

0 =

.e
e

(1+ln )
1

( + 2 )

1
(+ln )
1
(1++ 2 )

clc;
x = input(' x degeri giriniz : ');
if ( x <=0 )
f=1/(1+x^2);
g=1/(1+x^2+x);
else
f=1/(1+log(x));
g=1/(x+log(x));
end
fprintf(' f : %g, \n g : %g \n ',f,g);

www.muhammetcagatay.com
Sayfa - 10 -

ri.
co

rnek : bir uak firmas satcnn gnlk cretini yle hesaplamaktadr.


Gnlk sat adedi 50 den az ise 40 tl sabit cret ve satlan rn bana 80 tl prim
vermektedir.
Gnlk sat miktar 50 veya daha fazla ise 100 tl ve satt ilk 50 rn bana 90 tl, 50
den sonraki her rn iin 150 tl prim vermektedir.
Adedi kullancdan isteyip satcnn gnlk alaca creti hesaplayan matlab
programn yaznz.

sn
o

tla

clc;
adet = input(' sati adedi giriniz : ');
if ( x <50 )
maas = 40 + ( adet * 80 );
else
maas = 100 + ( 50 * 90 ) + ( (adet -50) * 150 );
end
fprintf(' maas : %g \n ',maas);

m
de
r

Tek bir if deyimi programn iki seenekten birini semek iin kullanlr. Fakat birok
program iin tek bir if deyimi yetersiz kalr ve bu gibi durumlarda i ie if ya da if else if
yaps kullanlr. ie if kullanlrken dikkat edilmesi gereken husus bir if ierisinde yalnzca
bir tane ele kullanlmasdr. Bir else kendinden nce gelen en yakn if ile ilikilidir.

rnek : Girilen adet saynn en kn bulan program yaznz.


clc;
a = input(' sayi 1 giriniz : ');
b = input(' sayi 2 giriniz : ');
c = input(' sayi 3 giriniz : ');

en kk say : %d \n ',a);
en kk say : %d \n ',c);

.e
e

if ( a < b )
if( a < c)
fprintf('
else
fprintf('
end
else
if( b < c)
fprintf('
else
fprintf('
end
end

en kk say : %d \n ',b);
en kk say : %d \n ',c);

www.muhammetcagatay.com
Sayfa - 11 -

sn
o

tla

ri.
co

2. ELSE - F DEYM : Birbirini izleyen ok sayda koulun kontroln gerekletiren


ilemlerde if else if yaps kullanlr.

m
de
r

rnek : 0 ile 10 arasnda rastgele retilen bir sayy bulmak iin kullancdan say isteyen ve
girilen saynn retilen saydan byk m, kk m yada eit mi olduunu bulan matlab
programn yaznz.
clc;
uretilen = round ( 10 * rand (1,1));
girilen = input(' tahminizi giriniz : ');
if ( uretilen < girilen )

fprintf(' daha kk bir say giriniz ');

.e
e

elseif ( uretilen > girilen )

fprintf(' daha byk bir say giriniz ');

else

');

fprintf(' tebrikler buldunuz

end

www.muhammetcagatay.com
Sayfa - 12 -

ri.
co

3. FOR DNGS : balang, biti ve adm deerleri arasnda dnen bir dngdr.
Eer admlarnz birer birer artyor ise adm deerini yazmasanz da olur.

rnek : 1 den 10 a kadar olan saylar ekrana yazdran program yaznz.

sn
o

EKRAN IKTISI :

tla

clc;
for i=1:1:10
fprintf(' %d - ',i);
end

rnek : Kullancdan istenen bir saynn faktriyelini hesaplayan matlab programn yaznz.

.e
e

m
de
r

clc;
sayi =input(' bir sayi giriniz : ');
if(sayi>0)
faktoriyel =1;
& arpm olduundan ilk deeri 1 aldk
for i=1:1:sayi
faktoriyel = faktoriyel * i;
end
fprintf(' %d ',faktoriyel);
else
fprintf(' saynz 1 den kk olamaz ');
end

rnek : m = 100000 olmak zere, 4

(1)2

=0 2k+1

= ? Soncunu hesaplayan matlab

programn yaznz.

clc;
toplam =0;
for i=0:1000000
sonuc=(((-1)^i))/((2*i)+1);
toplam=toplam+ (4* sonuc);
end
fprintf(' toplam = %g' ,toplam);
www.muhammetcagatay.com
Sayfa - 13 -

rnek : Bilinen bir alt deikenden st deikene kadar olan saylarn ardk toplamn
ekrana yazdran matlab program yaznz.

tla

ri.
co

clc;
toplam=0;
bas=input('bir balang deeri giriniz : ');
son=input('bir biti deeri giriniz : ');
if bas>son
fprintf('balang deeri biti deerinden byk olmamal !');
else
for i=bas:1:son
toplam=toplam+i;
end
fprintf('toplam : %d ',toplam);
end

rnek : Klavyeden girilen bir say iin, eitliliini kontrol eden matlab programn yaznz.

1
+1
=
2
2

sn
o

=1

.e
e

m
de
r

clc;
carpim=1;
n = input(' bir sayi giriniz : ');
for k =1:n
carpim = carpim * (1 - ( 1 / (k^2)));
end
sonuc = (n+1)/(2*n);
if carpim==sonuc
fptintf('girdiiniz sayi eitlii saliyor');
else
fptintf('nalesef girdiiniz sayi eitlii salamiyor');
end

rnek : Kp 4000 den byk ve 3 ile blnebilen en kk doal sayy bulan program
yaznz.

clc;
sayi=1;
x=1;
while x==1;

if ( (sayi^3)>=4000 && mod(sayi,3)==0 )


fprintf('\n aranan rakam : %d ' ,sayi);
x=0;
else
fprintf('olmad : %d ' ,sayi);
sayi=sayi+1;
end

end
www.muhammetcagatay.com
Sayfa - 14 -

E DNGLER

Algoritma gelitirirken bir dng ierisine bir veya daha fazla dng kullanmak gerekebilir.
Bu gibi durumlarda dardaki dngnn bir kez dnmesi sonucu ierdeki dng tam
dngsn tamamlayacaktr. Yani ilk olarak ierdeki dng tamamlanacaktr.

sn
o

tla

ri.
co

rnek : Resimdeki gibi 10 x 10 arpm tablosunu ekrana yazdran matlab programn yaznz.

m
de
r

clc;
fprintf('
%3d %3d %3d %3d %3d %3d %3d %3d %3d %3d
\n',1,2,3,4,5,6,7,8,9,10);
fprintf('-------------------------------------------\n');
for i=1:10
fprintf('%2d |',i);
for j=1:10
fprintf('%3d ',i*j);
end
fprintf('\n');
end

1
2
3
14
! + ! + ! + +
!
2
3
4
15

.e
e

rnek : Aadaki ilemin sonucunu ekrana yazdran matlab programn yaznz.

clc;
toplam=0;
for i=2:15
faktoriyel=1;
for j=1:i
faktoriyel=faktoriyel*j;
end
sonuc = (i-1)/faktoriyel;
toplam =toplam+sonuc;
end
fprintf('sonu : %g |', toplam);

www.muhammetcagatay.com
Sayfa - 15 -

WHLE DNGS

ri.
co

1. Belirlenen art salandka dnen dng tipidir.


2. Bu dngde dikkat edilmesi gereken nokta art salandka dngnn srekli
dneceidir. Eer nlem alnmaz ise sonsuz dngye sebep olur.
3. While ve for dngleri birbirinin yerine kullanlabilir, doru olan semek bizim
grevimizdir.

BREAK DEYM

CONTNUE DEYM

sn
o

tla

1. Bir dng yada switch case yapsn sona erdirmek iin kullanlan komuttur.
2. Matlab bu komutu grdnde iinde bulunduu dngy sonlandrr ve bu komutun
altndaki komutlar deerlendirmez.

Dngy sonraki evirmeye geirir. Bu komutun altndaki komutlar o anki evirme iin
deerlendirilmez.

m
de
r

rnek : Continue kullanarak 1 ile 100 arasndaki tek saylar ekrana alt alta yazdran matlab
programn yaznz.

.e
e

clc;
for i=1:100
if mod(i,2)==0
continue
end
fprintf(' %d \n ',i);
end

rnek : 10 tl nin yllk yzde 30 faiz ile, 50 tl yi getii ada eit olduu ilk yl ve toplam para
deerini bulan bir matlab program yaznz.

clc;
toplam_para=10;
yil =0;
while(toplam_para <50)
yuzde = toplam_para * 3 /10;
toplam_para = toplam_para + yuzde;
yil =yil +1;
end
fprintf(' ay : %d para : %g \n ' ,yil, toplam_para);

www.muhammetcagatay.com
Sayfa - 16 -

ri.
co
tla

clc;
toplam=0;
while(1)
sayi = input('sayi giriniz = ');
if( sayi < 0)
break;
end
toplam=toplam + sayi ;
end
fprintf('toplam = %g
', toplam);

rnek : kullanc negatif say girinceye kadar yeni say isteyen ve girilen saylar toplayan bir
matlab program yaznz.

sn
o

rnek : x=10 ve y=7 olmak zere, bu saylarn toplam 52757 den byk oluncaya kadar, x
saysn 2 kez katlayarak toplama ilemine ileme devam ediliyor. Buna gre x says ka kez
katlanmtr.

m
de
r

clc;
x=10;
y=7;
toplam = x+y;
katlanma =0;
while(toplam<52757)
x = 2 * x;
toplam = x+y;
katlanma =katlanma +1;
end
fprintf(' ay : %d ', katlanma);

.e
e

rnek : Aadaki ekran ktsn veren matlab programn yaznz.

clc;
for i=1:5
fprintf('\n %d \n', i);
for j=1:3
fprintf('j= %d , ', j);
end
end

www.muhammetcagatay.com
Sayfa - 17 -

SWTCH CASE YAPISI

m
de
r

sn
o

tla

ri.
co

f yapsnn bir benzeri olan bu yapda anahtar deere karlk gelen birok seenek iinden
uygun olan semelisiniz. Bu yap ile yaplan her algoritma if ile de yaplr. Kullanm ;

rnek : Verilen ay deerine karlk, o ayn ka gnden olutuunu hesaplayan matlab


programn yaznz.

.e
e

clc;
ay = input('ay giriniz');
switch ay
case {1,3,5,7,8,10,12}
fprintf(' 30 gn ');
case 2
yil = input('yil giriniz');
if(mod(yil,4)==0)
fprintf(' 29 gn ');
else
fprintf(' 28 gn ');
end
case {4,6,9,11}
fprintf(' 30 gn ');
otherwise
fprintf(' hatal ay girii ');
end

www.muhammetcagatay.com
Sayfa - 18 -

rnek : kullancnn girecei bir dzgn okgen iin, i alar toplamn hesaplayan bir
matlab program yaznz.

TRY CATCH YAPISI

ri.
co

sn
o

tla

switch cokgen
case 'ucgen'
kenar_sayisi=3;
case { 'dortgen', 'drtgen','4gen' }
kenar_sayisi=4;
case 'begen'
kenar_sayisi=5;
otherwise
fprintf(' geersiz giri \n ' );
end
sonuc = (kenar_sayisi - 2)*180;
fprintf('sonuc : %d \n ',sonuc );

clc;
cokgen = input('bir okgen giriniz : ','s');

m
de
r

Mantksal hatay kontrol eder ( yaz hatalarn kontrol etmez ).


f yapsna benzer ekilde dallanma salanr.

ki durumda hangisi mantksal olarak doru ise onu altrr.

.e
e

kisi de doru ise try ksm alr.

rnek :

clc;
a=10; %balang deeri 10
try
a=a+20; % a nn yeni deeri 30 oldu
a=a+g; % g diye bir say olmaz ( mantk hatas ) bu satr
atlar
catch
a=50; % yeni deeri 50
end
display(a); % sonucu 30 yerine 50 yazar , nk 2. satr
atlar

www.muhammetcagatay.com
Sayfa - 19 -

MATLABDA PROGRAMI SONLANDIRMAK

Retrun : Yazdmz matlab programlarnn herhangi bir anda ( programn normalde sona
erdii noktadan daha nce ) sonlandrlmas iin kullanlr. Bir dier deyi ile program
durdurup kapatma komutudur.

ri.
co

Error : Returna benzer bir komut olan error komutunda, program bir hata ile birlikte
sonlandrr. Return komutunda ise herhangi bir hata durumu yoktur.

MATLABDA MATRS LEMLER

Doal olarak matrisler ile ilgili matlabda birok hazr fonksiyon ( metod ) vardr.

tla

Bu derste matlab Hazr fonksiyonlarndan bazlarnn algoritmalarn anlamaya alacaz.

sn
o

rnek : 2 x 3 Boyutlu Bir Matrisin Elemanlarn, Klavye Yolu le Kullancdan Alan ve Sonunda
Bu Matrisi Ekrana Yazan Matlab Programn Yaznz.

.e
e

m
de
r

clc;
A=[];
% A=[2,3]; de yazlabilir
for i=1:2
for j=1:3
fprintf('A(%d,%d) =',i,j);
A(i,j)=input('');
end
end
A

Daha farkl olarak bir matris tek bir seferde de girilebilir. Ancak girilen matrisin istenilen
formda olup olmad kontrol edilmelidir.

clc;
A=[];
fprintf('2 x 3 tipine bi matris giriniz \n' );
A=input('A =');
[x,y] =size(A);
if (x~=2) || (y~=3)
error('matris yanl formda \n');
else
A
End

www.muhammetcagatay.com
Sayfa - 20 -

ri.
co

sn
o

tla

clc;
A=input('birinci matrisi giriniz : ');
B=input('ikinci matrisi giriniz : ');
[x,y]=size(A);
[n,m]=size(B);
if (x~=n) || (y~=m)
error('Toplanamaz !');
else
T=[];
for i=1:x
for j=1:y
T(i,j)=A(i,j)+B(i,j);
end
end
end
T

rnek : kullanc tarafndan girilen 2 adet matrisin toplamn bulan ve ekrana yazan matlab
programn yaznz.

rnek : kullancdan bir matris ile bir skaler isteyip bunlarn arpmn ekrana yazdran
program yaznz.

.e
e

m
de
r

clc;
A=input('matrisi giriniz : ');
k=input('skaler k deerini giriniz : ');
[x,y]=size(A);
T=[];
for i=1:x
for j=1:y
T(i,j)=A(i,j) * k;
end
end
T

rnek : kullanc tarafndan girilen matrisin transpozunu ekrana yazdran matlab programn
yaznz.

clc;
A=input('A matrisini giriniz : ');
[x,y]=size(A);
T=[];
for i=1:y
for j=1:x
T(i,j)=A(j,i);
end
end
T

www.muhammetcagatay.com
Sayfa - 21 -

sn
o

tla

ri.
co

clc;
A=input('A matrisini giriniz : ');
B=input('B matrisini giriniz : ');
[x,y]=size(A);
[n,m]=size(B);
toplam =0;
carpim =1;
if(y~=n)
error('bu matrisler carpilamaz.');
else
C=zeros(x,n);
for i=1:x
for j=1:y
for k=1:m
C(i,j) = C(i,j) + A(i,k) * B(k,j);
end
end
end
end
C

rnek : kullanc tarafndan girilen 2 matrisin arpmn bulan ve ekrana yazan matlab
komutlarn yaznz.

m
de
r

rnek : satr ve stn says kullanc tarafndan girilen deerleri 0 ile 15 aralndaki
tamsaylardan rastgele olarak oluan bir matristeki, sfrlarn adresini ve saysn bulan matlab
programn yaznz.

.e
e

clc;
x=input('satr giriniz : ');
y=input('stn giriniz : ');
A=round(rand(x,y)*15)
sifirlarin_sayisi=0;
for i=1:x
for j=i:y
if(A(i,j)==0)
sifirlarin_sayisi =sifirlarin_sayisi +1;
fprintf('A(%d,%d) = 0 \n',i,j);
end
end
end
fprintf('A matrisindeki 0 larin says : %d \n', sifirlarin_sayisi);

www.muhammetcagatay.com
Sayfa - 22 -

rnek : kullanc tarafndan girilen bir satr vektrnn elemanlarn tersten yazan baka bir
satr vektr oluturunuz.

tla

ri.
co

clc;
A=input('Matris giriniz : ');
if( size(A,1)~= 1) %size(A,1) satr saysn verir
error('malesef bu satr matrisi ( vektr ) deil ');
else
T=[];
y=size(A,2); %size(A,2) stn saysn verir
k=y;
for i=1:y
T(k)=A(i);
k=k-1;
end
end
T

sn
o

rnek : kullanc tarafndan girilen bir matrisin yalnzca ilk satrn terse eviren dier
satrlarn aynen yazan matlab komutlarn yaznz.
SONU :

.e
e

m
de
r

clc;
A=input('bir Matris giriniz : ');
T=A;
sutun_sayisi=size(A,2);
sayac=sutun_sayisi;
for i=1:sutun_sayisi
T(1,sayac)=A(1,i);
sayac=sayac-1;
end
A
T

www.muhammetcagatay.com
Sayfa - 23 -

ri.
co
tla

m
de
r

sn
o

clc;
A=input('A matrisini giriniz : ');
[x,y]=size(A);
T=[];
for i=1:y
for j=1:x
T(i,j)=A(j,i);
end
end
C=zeros(x,x);
for i=1:x
for j=1:y
for k=1:y
C(i,j) = C(i,j) + A(i,k) *
T(k,j);
end
end
end
A
T
C

rnek : Kullanc tarafndan girilen bir matris ile bu matrisin transpozunu arpan matlab
programn yaznz. (Osmangazi niversitesi - matematik ve bilgisayar bilimleri temel bilgi
teknolojileri 1 dersi - 2012 vize2 snav sorusu )

RNEK UYGULAMALAR 1

= + (+) , n=50 iin yandaki ilemin sonucunu bulan matlab


programn yaznz.

.e
e

rnek :

clc;
sonuc=0;
for i=0:1:50
yenisonuc = 1/ ((2*i)+1) * ((2*i)+2) ;
sonuc=sonuc+yenisonuc;
end
fprintf('sonuc %g ',sonuc);

www.muhammetcagatay.com
Sayfa - 24 -

formln m=25 iin hesaplayan matlab programn yaznz.

tla

clc;
m=25;
toplam =0;
for i=12:m
sonuc=(5^(3*i))/((7*i)+5);
toplam=toplam+sonuc;
end
fprintf(' toplam = %g',3*toplam);

ri.
co

rnek :

rnek : Klavyeden 0 4 aralnda girilen bir tamsaynn yaz ile ka olduunu ekrana yazan,
bu deerlerin dnda bir deer girilirse hata veren matlab programn yaznz.

.e
e

m
de
r

sn
o

clc;
sayi=input('bir say giriniz : ');
switch sayi
case 0
fprintf('sfr');
case 1
fprintf('bir');
case 2
fprintf('iki');
case 3
fprintf('');
case 4
fprintf('drt');
otherwise
error(' girfiiniz say 0 ile 4 arasnda deil ');
end

rnek : 20 ye kadar olan saylardan 3 ile blnenleri ekrana yazdran program yaznz.
clc;
for i=1:20
if mod(i,3)==0
fprintf('%d \n',i);
end
end

www.muhammetcagatay.com
Sayfa - 25 -

for i=1:sayi;
toplam =toplam +i;
carpim =carpim *i;

tla

end

ri.
co

clc;
sayi=input('sayi gir : ');
toplam =0;
carpim =1;

rnek : klavyeden girilen sayya kadar olan tm saylarn toplam ve arpmn ekrana yazdran
matlab programn yaznz.

sn
o

fprintf(' toplam = %d , carpim = %d' ,toplam,carpim);

m
de
r

rnek : 3 santimetreyi, klavyeden girilen cm, inch, mm gibi birimlere gre dntrp o
birim trndeki deeri , hatal giri yaplmsa hata mesajn ekrana yazan matlab programn
yaznz.

.e
e

clc;
x=3.0;
birim =input('birim giriniz :','s');
switch birim
case {'in','inch'}
y = 2.54 * x;
fprintf('%d %s : %d cm ',x,birim,y);
case {'m','metre'}
y=x*100;
fprintf('%d %s : %d cm ',x,birim,y);
case {'milimetre','mm'}
y=x/10;
fprintf('%d %s : %d cm ',x,birim,y);
case {'cm','santimetre'}
y=x;
fprintf( [num2str(x) ' ' birim ':' num2str(y) 'cm' ]);
otherwise
fprintf('bilinmeyen : %s ',birim);
y=nan;
end

www.muhammetcagatay.com
Sayfa - 26 -

sn
o

tla

ri.
co

clc;
A=[2 5 43];
B=[2 4 -1 ];
try
A
B
C=A>B
catch
fprintf(' dizi boyutlari ayni deil ');
end

rnek : verilen iki adet matrisin elemanlarn kyaslayp bykse 1 deilse 0 olarak yeni bir
matrise deer atayan , boyutlar ayn deilse hata mesaj veren program try cath yapsn
kullanarak yaznz.

m
de
r

rnek : while ve rand komutlarn kullanarak ve ka adet zar ikilisi olacan kullancdan
alarak zar atlar yapp, kan sonular ekrana yazdran matlab programn yaznz.

.e
e

clc;
n=1; %sifirdan farkl olsun diye
while n~=0
ikili_sayisi=input('ka edet ikili retmek istiyorsunuz ? : ');
uretilen =floor(1+6*rand(ikili_sayisi,2));
fprintf(' - - - - - - - - - - \n');
fprintf('zar : %d\n' ,uretilen);
n=input(' tekrar zar atmak iin 1 e , durdurmak iin 0 a basn : ');
end
fprintf('program durduruldu...');

Not : yukardaki rnekte verdiimiz ;

n=input(' tekrar zar atmak iin 1 e , durdurmak iin 0 a basn : ');

satrnda, programn devam etmesi iin illa 1 says girilecek diye bir kural yoktur. Sfrdan
farkl olmak koulu ile girilen btn n saylar iin dng ( program )devam eder. Bu zellik
while dngsnn zelliidir.

rnek : Ekrana matris grntsn karan matlab


www.muhammetcagatay.com
Sayfa - 27 -

matris grntsn karan matlab

rnek : Ekrana

ri.
co

programn yaznz. (Osmangazi niversitesi - matematik ve bilgisayar bilimleri temel bilgi


teknolojileri 1 dersi - 2013 vize1 snav sorusu )

m
de
r

sn
o

tla

clc;
A=ones(3,3);
A
B=5* ones(2,2);
B
A(4:5,4:5)=B;
A

YER DETRME ALGORTMASI

.e
e

x ve y gibi iki deiken verildiinde bu deikenlerin deerlerini yer deitirmek iin;


lk olarak x deikeninin deeri geici bir deikene atanr.
Daha sonra y deikeninin deeri x deikenine atanr.
Son olarak da y deikenine, geici deikendeki deer atanarak yer deitirme ilemi
tamamlanm olur.

clc;
x=26;
y=53;
gecici=x;
x=y;
y=gecici;
x
y

www.muhammetcagatay.com
Sayfa - 28 -

SIRALAMA ALGORTMASI

tla

clc;
A=[44,23,1,78,5,6];
A
B=sort(A);
B

ri.
co

Verilen bir A dizisinin (satr vektrnn) elemanlarnn kkten byye doru sralamak iin
matlabda sort(A) fonksiyonu kullanlr. bu dersimizde bu fonksiyonu kullanmadan benzer
algoritmalar nasl yazlabilir bunu inceleyeceiz.

1. Yol

Dizinin en kk eleman belirlenir.


Daha sonra bu eleman ile ilk sradaki eleman yer deitirir.
daha sonra dizinin sralanm ksmndaki en kk eleman bulunarak 2.
Sradaki eleman ile yer deitirir.
Bu byle devam ederek n kez bu ilem yapldnda , n elemanl bir dizi
sranm olur.

m
de
r

sn
o

rnek : Eleanlar 1 ile 50 arasnda deien 10 elemanl bir dizinin elemanlarn kkten
bye sralaynz.

.e
e

clc;
A=round(1+49 * rand(1,10));
A
for i=1:length(A)
en_kucuk = i;
for j=i+1:length(A)
if A(j) <A(en_kucuk)
en_kucuk=j;
end
end
gecici =A(i);
A(i)=A(en_kucuk);
A(en_kucuk)=gecici;
end
A

www.muhammetcagatay.com
Sayfa - 29 -

clc;
A=round(1+49 * rand(1,10));
A
for i=1:length(A)
for j=length(A):-1:1+i

m
de
r

sn
o

if A(j)<A(j-1)
gecici =A(j-1);
A(j-1)=A(j);
A(j)=gecici;
End

ri.
co

Sralanm diziye, sondan balanarak elemanlarn ikierli kontrol yaplr.


Eer sadaki eleman soldakinden daha byk ise yer deitirilir.
bu ilem yeteri kadar tekrar ederek tm dizi sralanm olur.

tla

2. Yol :

end

.e
e

end
A

www.muhammetcagatay.com
Sayfa - 30 -

MATLABTA FONKSYON OLUTURMAK VE PROGRAMA AIRMAK

sn
o

ri.
co

Matlabdaki fonksiyonlar grsel veya metin tabanl olmak zere 2 ekilde elde edilir.
Clc, sin, cos, rand gibi baz fonksiyonlar sistem tarafndan yazlmken baz
fonksiyonlar da kullanc kendisi yazar.
Fonksiyonlarn kendine zg bir isi vardr. Yani, clc, sin,rand gibi sistemin iinde var
olan fonksiyon isimlerini tekrar kullanamazsnz.
Fonksiyonlarn ismi verilirken deiken tanmlama kurallar aynen geerlidir.
(baknz : sayfa 3 )
Her fonksiyon iin bir .m dosyas oluturulmaldr.
m belgesinin ismi ile fonksiyon ayn olmaldr ve ayn belgeye ancak fonksiyonun alt
fonksiyonlar yazlabilir.
Fonksiyon olan m belgesi function anahtar kelimesi ile balar.
Parametre alan fonksiyon editr zerindeki altrma butonu ya da f5 ile
altrlamaz. Komut satrna ilgili parametre ile fonksiyonun ad yazlmaldr.
Fonksiyonlara genellikle bir giri ve k parametresi alnr.

tla

Fonksiyon olan m dosyasnn 3 temel bileeni vardr;

m
de
r

1. Fonksiyonun imzas ya da prototipi ( ilk satrda tanmlanr )


2. Fonksiyonun aklamas ( olmak zorunda deildir ), eer varsa ikinci satrdan
itibaren yorum satr olarak yazlr.
3. Fonksiyonun tanm (aklama var ise aklamadan sonra, aklama yok ise 2.
Satrdan balar. )

.e
e

Bir fonksiyonunu imzas aadakiler gibi olabilir ; cp = cikis parametresi ve gp = giri


parametresidir.

function
function
function
function
function

[cp1, cp2 ] = fonksiyonun_adi (gp1, gp2 )


cp1 = fonksiyonun_adi (gp1, gp2, )
[cp1, cp2 ] = fonksiyonun_adi (gp1)
cp1 = fonksiyonun_adi( )
fonksiyonun_adi(gp1)

www.muhammetcagatay.com
Sayfa - 31 -

rnek : iki nokta arasndaki uzakl bulan matlab fonksiyonunu yaznz.

2 1

+ 2 1

Forml =

, = +

diline eviriniz.

fonksiyonunu matlab

sn
o

rnek :

tla

ri.
co

function sonuc = uzaklik_hesapla(x1,y1,x2,y2)


%(x1,y1) ile (x2,y2) notalar arandaki uzakl hesaplar
% u benim ilk fonksiyonum
sonuc = (sqrt(x2-x1)^2 + (y2-y1)^2);
end

function sonuc = fonksiyon1(x,y)

m
de
r

sonuc =( x^2+y) + sqrt(x*y) + (log(x) +1) / (log10(y)) +tan(x/y);


end

Not : fonksiyonu program ierisinde armak iin aadaki yollar kullanabilirsiniz ;


2. yol
clc;
sonuc =fonksiyon1( 10,53);
...

.e
e

1. yol
clc;
x=10;
y=53;
sonuc =fonksiyon1( x,y);
...

www.muhammetcagatay.com
Sayfa - 32 -

rnek : verilen n saysnn faktriyelini bulan matlab fonksiyonunu yaznz.

ri.
co

function sonuc = faktoriyeli_bul(n)


sonuc =1;
for i=1:n
sonuc = sonuc * i;
end
end

tla

rnek : verilen n saysndan kk olan tm asal saylar listeleyen matlab fonksiyonunu alt
fonksiyon kullanarak yaznz. (Osmangazi niversitesi - matematik ve bilgisayar bilimleri
temel bilgi teknolojileri 1 dersi - 2012 vize2 snav sorusu )

m
de
r

sn
o

function liste = asal_sayilari_bul(n)


liste=[];
for i=2:n
if(asal_mi(i)==1)
liste=[liste i];
end
end
end

function sonuc = asal_mi(sayi)


bolenler=[];
for i=1:sayi
if(mod(sayi,i)==0)
bolenler=[bolenler i];
end
end

.e
e

if(length(bolenler)==2)
sonuc=1;
else
sonuc=0;
end

end

Programda armak ve ekrana yazdrmak:


clc;
liste=[];
liste=asal_sayilari_bul(58);
liste

www.muhammetcagatay.com
Sayfa - 33 -

Program iinde kullanm:

ri.
co

function [x,y]=yerlerini_degistir(x,y)
gecici=x;
x=y;
y=gecici;
end

rnek : kendine giri parametresi olarak ald x ve y deikenlerinin deerlerini deitiren


matlab fonksiyonunu yaznz.

m
de
r

sn
o

tla

clc;
sayi1=53;
sayi2=1989;
sayi1
sayi2
[sayi1,sayi2]= yerlerini_degistir(sayi1,sayi2);
sayi1
sayi2

.e
e

Ekran kts:

k parametresinin birden ok olduu durumlarda kan sonucu


deikene almak iin, aadaki yntem uygulanr.
[x,y]=degistir(2,3);
Aksi halde editr sadece ilk deeri, ans deienine atar ve ikincisini
atamaz.
www.muhammetcagatay.com
Sayfa - 34 -

KABARCIK SIRALAMA ( BUBBLE SORT ) ALGORTMASI

Bilgisayar bilimlerinde kullanlan yaln bir sralama algoritmasdr. Sralanacak dizinin


zerinde srekli ilerlerken her defasnda iki enin birbiriyle karlatrlp, karlatrlan
elerin yanl srada olmalar durumunda yerlerinin deitirilmesi mantna dayanr.
Algoritma, herhangi bir deiiklik yaplmayncaya kadar dizinin bana dnerek kendisini
yineler. Adna "Kabarck" sralamas denmesinin nedeni byk olan saylarn ayn suyun
altndaki bir kabarck gibi dizinin stne doru ilerlemesidir.

ri.
co

Balangta yer yer deitirme sralamas olarak adlandrlan kabarck sralamas, dizi
iindeki byk elemanlarn algoritmann her admnda dizinin sonuna doru dorusal olarak
ilerlemesini salar. Bu ilerleme, semeli sralama algoritmasndaki dizideki deeri kk olan
elemanlarn dizinin banda kmelenmesi yntemine benzer ekilde gerekleir.
Algoritmann Adm Adm leyii

tla

erii "5 1 4 2 8" olan bir dizi kabarck sralamas ile en kkten en bye doru
aadaki biimde sralanr. Her admda dizinin kaln olarak iaretlenmi elemanlar
karlatrlan elemanlardr.

kinci Gei:

( 1 5 4 2 8 ) Burada algoritma ilk iki eleman karlatrr ve yerlerini deitirir.


(14528)
(14258)
( 1 4 2 5 8 ) Burada elemanlar zaten sral olduu iin algoritma yerlerini

m
de
r

(51428)
(15428)
(14528)
(14258)
deitirmez.

sn
o

Birinci Gei:

.e
e

(14258)
(14258)
(14258)
(12458)
(12458)
(12458)
(12458)
(12458)
Artk dizi sraldr ancak algoritma ilemin bittiini bilmemektedir. Algoritmann dizinin
sralandn anlamas iin btn dizinin zerinden hibir deiiklik yapmadan tam bir gei
yapmas gerekir.

nc Gei:

(12458)
(12458)
(12458)
(12458)

(12458)
(12458)
(12458)
(12458)

Sonu olarak dizi sralanmtr ve algoritma sonlanr.

www.muhammetcagatay.com
Sayfa - 35 -

rnek : Elemanlar 1 ile 100 arasnda deien 20 elemanl rastgele bir dizi oluturup, bu
diziyi kabarck sralama algoritmas kullanarak sralayan matlab programn yaznz.
(Osmangazi niversitesi - matematik ve bilgisayar bilimleri temel bilgi teknolojileri 1 dersi 2013 vize2 snav sorusu )

ri.
co

for e=1:20
fprintf(' %2d ',A(1,e));
end

tla

clc;
A=[1,20];
for t=1:20
A(1,t)=round(1+99* rand(1,1));
end

1. yol :

m
de
r

sn
o

for i=1:20
for j=20:-1:1+i
if A(1,j-1)>=A(1,j)
gecici=A(j-1);
A(1,j-1)=A(1,j);
A(1,j)=gecici;
end
end
end
fprintf('\n sirali dizi elemanlar : \n');

.e
e

for e=1:20
fprintf(' %2d ',A(1,e));
end

2. yol :

clc;
A=round(1+99* rand(1,20));
A
for i=1:20
for j=20:-1:1+i
if A(j-1)>=A(j)
gecici=A(j-1);
A(j-1)=A(j);
A(j)=gecici;
end
end
end
A

www.muhammetcagatay.com
Sayfa - 36 -

MATLABDA KULLANILAN BAZI YUVARLAMA VE STRNG FONKSYONLARI

Round: Ondalkl ksm 0.5 ten kkse aadaki tamsayya , deilse yukardaki tamsayya
yuvarlar.
Ceil : Ondalkl ksm + a doru yuvarlar

ri.
co

Fix : Ondalkl ksm sfra doru yuvarlar


Flor : Ondalkl ksm a doru yuvarlar.

rnek :

Flor(a)
-3
-2
-2
-1
0
1
1
2

Round(a)
-3
-2
-1
-1
1
1
2
3

tla

Fix(a)
-2
-1
-1
0
0
1
1
2

sn
o

Ceil(a)
-2
-1
-1
0
1
2
2
3

m
de
r

A says
- 2.5
-1.75
-1.25
-0.5
0.5
1.25
1.75
2.5

Str2num : Verilen string deeri, eer mmknse sayya evirir. Not: 123a gibi bir string
deer sayya dntrlemez.
Num2str : Verilen string deerii mmknse sayya evirir
Fliplr: Verilen listeyi terse evirir. *1,2,3,4] dizisini [4,3,2,1] yapar.

.e
e

Rem : Bir sayn baka bir saya blmnden kalan verir. ( mod ile ayn ii yapar )

Nargin : Giri yaplan parametre saysn ifade eder

Nargout : k yaplan parametre saysn ifade eder.

Varargin : Tm giri parametrelerini ifade eder

Varargout : Tm k parametrelerini ifade eder.

www.muhammetcagatay.com
Sayfa - 37 -

Palindrom Kelime : Sadan ve soldan okunuu ayn olan kelimeye denir.


rnek kelimeler : ece, sos, elle, kazak, kllk, nacican

sn
o

tla

ri.
co

function sonuc = palindrom_mu(kelime)


boyut = length(kelime);
yarisi = fix(boyut/2);
sonuc ='bu kelime palindromdur';
for i=0:yarisi
if kelime(i+1)== kelime(boyut-i)
continue
else
sonuc ='bu kelime palindrom deildir';
break
end
end

rnek : Verilen bir kelimenin palindrom olup olmadn test eden bir mtlab fonksiyonu
yaznz. (Osmangazi niversitesi - matematik ve bilgisayar bilimleri temel bilgi teknolojileri
1 dersi 2012 vize2 snav sorusu )

m
de
r

Fibonacci dizisi : her saynn kendinden ncekiyle toplanmas sonucu oluan bir say dizisidir.
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, eklinde devam etmektedir.
rnek : 1 ile 1000 arasndaki fibonacci dizi elemanlarn yazdran matlab programn yaznz.
(Osmangazi niversitesi - matematik ve bilgisayar bilimleri temel bilgi teknolojileri 1 dersi
2013 vize2 snav sorusu )

.e
e

clc;
liste=[];
liste(1)=1;
liste(2)=1;
for i=3:1000
eleman =liste(i-1) + liste(i-2);
liste(i)=eleman;
end
for i=1:1000
fprintf('%d
end

',liste(i));

Ekran kts :

www.muhammetcagatay.com
Sayfa - 38 -

rnek : a bir kare matris ve n bir pozitif tam say olmak zere

= ( )

ri.
co

function sonuc = matrisi_hesapla(A,n)

Olarak tanmlanr. Buna gre herhangi bir matris ve n says verildiinde deerini
hesaplayacak matlab programn alt fonksiyon kullanarak yaznz. (Osmangazi niversitesi matematik ve bilgisayar bilimleri temel bilgi teknolojileri 1 dersi 2013 vize2 snav sorusu )

sn
o

tla

[x,y]=size(A);
if(x~=y)
error(' malesef matrisiniz kare matris degil ');
else
sonuc=A;
for i=1:n-1
sonuc=carp(sonuc,A);
end
end
end

.e
e

m
de
r

function C=carp(M1,M2)
x=size(M1);
C=zeros(x);
for i=1:x
for j=1:x
for k=1:x
C(i,j) = C(i,j) + M1(i,k) * M2(k,j);
end
end
end
end

rnek : Girilen n saysna karlk, n satr ve n stundan oluan, * lar kullanarak dik gen
izdiren matlab fonksiyonunu yaznz. (Osmangazi niversitesi - matematik ve bilgisayar
bilimleri temel bilgi teknolojileri 1 dersi 2012 vize2 snav sorusu )

Ekran kts :

function ucgen_ciz(n)
for i=1:n
for j=1:i
fprintf('*');
end
fprintf('\n');
end

www.muhammetcagatay.com
Sayfa - 39 -

Armstrong Saylar : 3 basamakl saylardan, basamak deerlerinin kpleri toplam sayya eit
ise bu sayya Armstrong say denir.

ri.
co

rnek : Tm Armstrong saylar bulan bir matlab fonksiyonu yaznz.


function liste = armstrong_bul()

tla

Ekran kts :

m
de
r

sn
o

liste=[];
for i=100:999
s=num2str(i);
s1=str2num(s(1));
s2=str2num(s(2));
s3=str2num(s(3));
toplam=s1^3 + s2 ^3 + s3^3;
if i==toplam
liste=[liste i];
end
end
end

rnein : 153 bir Armstrong saysdr, nk : 13 + 53 + 33 = 153 tr.

rnek : ie fonksiyon kullanarak faktriyel hesab yapan matlab fonksiyonu yaznz.

.e
e

function sonuc = faktoriyel(n)


if(n<0)
error('sayi 0 dan kk olamaz');
end
if n==0
sonuc =1;
else
sonuc = sonuc * faktoriyel(n-1);
end

end

www.muhammetcagatay.com
Sayfa - 40 -

MATLABDA TABAN ARTMET LEMLER

Decimal Sistem (onluk say sistemi ) : Gnlk hayatmzda decimal sistemi kullanmaktayz ve
taban10dur. rnein : 365 = ( 3 * 102 ) +( 6 * 101 ) + (5 * 101 )

ri.
co

kili SaySistemi (Binary System) :


Sistemin Taban2dir.
Sadece 0ve 1kullanr.
Her saydijitolarak ifade edilir.
Basamaklar 2nin kuvveti olarak yazlr. rnek : 101011 , 1010, 1111, 100 .

tla

Binary-Decimal evrimi : Her dijit, 2nin kuvveti ile arplarak decimal say sistemine evrilir.

sn
o

rnein :

.e
e

rnein :

m
de
r

Decimal-Binary evrimi : Decimal saylar binary saylara evirirken, her say blm 2 ye eit
oluncaya kadar ikiye blnr. kalanlar tersten yazlr.

www.muhammetcagatay.com
Sayfa - 41 -

rnek : kilik sistemde verilen bir sayy onluk sisteme eviren matlab fonksiyonunu yaznz.

ri.
co

sonuc=0;
ikilik_yazi = num2str(ikilik_sayi);
uzunluk=length(ikilik_yazi);
kuvvet=uzunluk-1;

function sonuc=ikiligi_onluk_yap(ikilik_sayi)

tla

for i=1:uzunluk
if str2num(ikilik_yazi(i)) > 1
error('sayi hatali formatta');
else
sonuc=sonuc + str2num(ikilik_yazi(i)) * 2^kuvvet;
end
end

Ekran kts :

sn
o

end

m
de
r

rnek : Onluk tabandan iklik tabana dnmeyi salayacak bir matlab fonksiyonu yaznz.

.e
e

function sonuc = onlugu_ikilik_yap(sayi)


i=1;
bolum =fix(sayi/2); %floor da olabilir
kalan= rem(sayi,2);
sonuc(i) = num2str(kalan); %listeye ekledik kalan

while ( 2 <= bolum )


sayi =bolum;
bolum =fix(sayi/2); %floor da olabilir
kalan= rem(sayi,2);
i=i+1;
sonuc(i) =num2str(kalan);
end
sonuc(i+1) = num2str(bolum);
sonuc =fliplr(sonuc);

end
Ekran kts :

www.muhammetcagatay.com
Sayfa - 42 -

ri.
co

function uzaklik = uzaklik_bul(x,y)


if nargin == 2
fprintf('iki deger aras uzaklk : ');
uzaklik=abs(x-y);
end
end

rnek : Eer sadece 2 adet giri parametresi verilmise, saylar aras uzakl bulan matlab
fonksiyonunu yaznz.

tla

imdi de ayn rnei giri yaplan ve k yaplan parametre saylarna snr koymadan tekrar
kodlayalm.

m
de
r

sn
o

function [varargout] =uzaklik_bul(varargin)


x = varargin{1};
y = varargin{2};
if nargin == 2
fprintf('iki deger aras uzaklk : ');
uzaklik=abs(x-y);
varargout{1} = uzaklik;
end
end

rnek : x ve y birbirinden farkl saylar olmak zere,

+ artn salayan tm x,y ikililerini ekrana yazan matlab programn

.e
e

yaznz.

clc;
for x=-3:3
for y=-3:4
islem=abs(x)+abs(y);
if islem<=3
fprintf('x = %d , y = %d \n',x,y);
end
end
end

www.muhammetcagatay.com
Sayfa - 43 -

You might also like