Professional Documents
Culture Documents
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
ri.
co
OPERATRLER.. 4
MATEMATKSEL FONKSYONLAR.... 4
DEKEN TPLER..... 4
SAYI FORMATLARI..... 5
tla
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
www.muhammetcagatay.com
Sayfa - 1 -
ri.
co
.e
e
m
de
r
sn
o
tla
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.
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.
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.
ri.
co
15.973000000000001
15.97
15973/1000
15.9730
sn
o
tla
m
de
r
.e
e
>> pi
>> date
>> clock
>> fix
>> clc
>> who
>> whos
>> clear
>> tic ve >>toc
>> help xx
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
ri.
co
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
1 - DREKT OLARAK:
sn
o
.e
e
m
de
r
www.muhammetcagatay.com
Sayfa - 6 -
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
>> 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,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.
MATLABDA PROGRAMLAMA
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
.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 -
tla
m
de
r
rnek kullanm :
sn
o
\n =
\t =
%s =
%d =
%f =
%e =
%g =
salar.
ri.
co
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 -
tla
ri.
co
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
>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
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.
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
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 )
.e
e
else
');
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.
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
(1)2
=0 2k+1
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;
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
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
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
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 -
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 ;
.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.
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
.e
e
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 -
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.
Doal olarak matrisler ile ilgili matlabda birok hazr fonksiyon ( metod ) vardr.
tla
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
.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 -
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
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...');
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
ri.
co
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
.e
e
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
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
tla
2. Yol :
end
.e
e
end
A
www.muhammetcagatay.com
Sayfa - 30 -
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
m
de
r
.e
e
function
function
function
function
function
www.muhammetcagatay.com
Sayfa - 31 -
2 1
+ 2 1
Forml =
, = +
diline eviriniz.
fonksiyonunu matlab
sn
o
rnek :
tla
ri.
co
m
de
r
.e
e
1. yol
clc;
x=10;
y=53;
sonuc =fonksiyon1( x,y);
...
www.muhammetcagatay.com
Sayfa - 32 -
ri.
co
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
.e
e
if(length(bolenler)==2)
sonuc=1;
else
sonuc=0;
end
end
www.muhammetcagatay.com
Sayfa - 33 -
ri.
co
function [x,y]=yerlerini_degistir(x,y)
gecici=x;
x=y;
y=gecici;
end
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:
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:
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)
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 -
Round: Ondalkl ksm 0.5 ten kkse aadaki tamsayya , deilse yukardaki tamsayya
yuvarlar.
Ceil : Ondalkl ksm + a doru yuvarlar
ri.
co
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 )
www.muhammetcagatay.com
Sayfa - 37 -
sn
o
tla
ri.
co
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
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
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
.e
e
end
www.muhammetcagatay.com
Sayfa - 40 -
Decimal Sistem (onluk say sistemi ) : Gnlk hayatmzda decimal sistemi kullanmaktayz ve
taban10dur. rnein : 365 = ( 3 * 102 ) +( 6 * 101 ) + (5 * 101 )
ri.
co
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
end
Ekran kts :
www.muhammetcagatay.com
Sayfa - 42 -
ri.
co
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
.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 -