You are on page 1of 75

Yeni Balayanlar iin

MATLAB
Yardmc Ders Notlar
Do. Dr. Cneyt AYDIN
Yldz Teknik niversitesi
stanbul-2012
1
indekiler
Giri
Matris ilemleri
Say Formatlar
Temel Lineer Cebir lemleri
Diziler (Arrays)
Program Dallandran fadeler (if-end , switch-case yaplar)
Dngler (for-end ve while-end dngleri)
Grafik
Dosya yazdrma-okuma
Fonksiyon dosyas oluturma
2
Kaynaka
Doan, U., (2009), Temel Bilgisayar Bilimleri Ders Notlar, YT,
Lisans Ders Notlar, stanbul.
Demirel, H., (2005), Dengeleme Hesab, YT, Lisans Ders Notlar,
stanbul.
Uzunolu M., vd. (2002), Matlab, Trkmen Kitabevi, stanbul.
http://www.mathworks.com/matlabcentral/
http://www.mathworks.com/matlabcentral/fileexchange/
3
MATLAB (MATrix LABoratuary)
http://www.mathworks.com/matlabcentral/
MATLAB, yksek performansl bir uygulama yazlm ve bir programlama
dilidir.
MATLABin temelindeki yap, boyutlandrma gerektirmeyen matrislerdir.
Yaptmz tm girdi ve ktlar, belirte gerektirmeksizin bir matris
tanmlar.
lk olarak Fortran dili ile yazlan MATLAB, daha sonra C ile yazlmtr.
4
MATLAB (MATrix LABoratuary)
Matlabde hazr programlar vardr. Bu programlara fonksiyon ad
verilir.
Matlab fonksiyonlarnn kullanm, matematikteki y=f(x) fonksiyonunun
kullanmyla zdetir.
rnein, a=sin(x) fonksiyonunda, sin fonksiyonu, x asnn (input-
girdi) deerini hesaplar; kullanc bu deeri, rnein, bir a deikenine
atar. a deeri sin fonksiyonunun bir ktsdr (output).
5
MATLAB (MATrix LABoratuary)
Avantajlar:
Kullanm kolayl,
letim sistemi uyumluluu,
Saysal analiz ilemlerindeki kolaylklar,
Hazr fonksiyonlar (function files),
Grntleme (visualization) kolayl (grafik izim),
GUI gelitirme kolayl,
MATLAB derleyicisi (exe: executable dosya ile win32 uygulamalar),
Toolboxes (Ara kutular) :hazr programlar!
6
MATLAB/Command window (komut penceresi)
Current directory
(alma klasr)
Dinamik komut satr
Her trl mat. ilem,
Demo, program altrma vb.
M-file editr
Programlarn yazld editr
7
MATLAB/Workspace ( alan)
Workspace
penceresi
Atanan
deiken Workspace penceresini
amann komut yolu
Workspace, ilgili oturumda kullanlan
tm deikenlerin tutulduu alandr.
8
MATLAB/Array Editor (Dizi editr)
Matris, vektr ve saylar iin excel zelliindeki editrdr.
Daha nce atanan bir deikenin
boyutlar istenildii gibi deitirilebilir!
ki farkl biimde grntlenir:
>>open('a')
workspace penceresinde ilgili
deiken iki kez tklanr.
9
MATLAB/Temel Komutlar
clc Command windowu temizler.
clear lgili oturumda atanm tm deikenleri siler.
clear a Yalnzca a deikenini siler.
demo Matlab demosunu altrr.
date Gn-Ay-Yl grntler (rnein, 17-Oct-2009)
exit Matlab oturumundan kar.
help Yardm mensn aar.
help f_na f_na fonksiyonu hakknda bilgi verir.
save d a a deikenini d dosya ismiyle mat uzantl olarak kaydeder.
load d a deikenini d dosyasndan geri arr.
Save ve load komutlar, matris vb. yaplarn kaydedilmesi iin ok nemlidir.
10
MATLAB/Temel dosya trleri
*.m MATLAB program dosyalar
*.fig Grafik dosyalar ve GUIlerin grafik paralar
*.mat Deiken ve matris dosyalar
*.p pre-parsed pseudo-code dosyalar (bu dosyalarn ierii
grntlenemez ancak program olarak arlabilir, yani MATLABde
altrlabilir!)
11
MATLAB/Matrislerin Girilmesi
Matris ve vektrler [ ] keli parantezleri ile tanmlanr.
Matris ve vektr girmenin 3 farkl yolu vardr:
rnein:
A=[1 3 5
7 8 11
100 1 4]
1.yol
A=[1 3 5;7 8 11;100 1 4]
2.yol

=
4 1 100
11 8 7
5 3 1
A
A(1,1)=1, A(1,2)=3, A(1,3)=5
A(2,1)=7, A(2,2)=8, A(2,3)=11
A(3,1)=100, A(3,2)=1, A(3,3)=4
3.yol
12
MATLAB/Matrislerin Kaydedilmesi
Matris ve vektrler *.mat uzantl olarak save komutuyla kaydedilir, load
ile de istenilen yerden geri arlr.
rnein, girilmi bir a matrisini D:\yildiz klasrne katsayilar.mat
olarak kaydetmek isteyelim: Bunun iin aadaki komut dizisi kullanlr;
save D:\yildiz\katsayilar a
katsayilar.mat olarak kaydedilen a matrisinin herhangi bir zamanda geri
arlmas iin,
load D:\yildiz\katsayilar
komut dizisi kullanlr. Geri arma ileminden sonra, ilgili matris a
dizisi olarak workspacede kaydedilir (workspacee kaydetme ileminin
geici olduunu hatrlaynz!)
Yeni bir matrisi katsayilar.mat olarak kaydettiimizde, nceki matrisi bir daha
grme imkan kalmaz. Yani save overwrite (zerine yazma) zelliklidir.
13
MATLAB/Matrislerin Kaydedilmesi
*.mat uzantl dosyalar, ayrca MATLABden open files ksa yolundan da
geri arlabilir:
Open files
Dosya
trn
MAT-files
olarak
deitir.
Dosyadaki
deiken
workspacede
oluturulur.
14
MATLAB/Say Formatlar
>> format long
>> a=1.123000123123123123;
>> a
a =
1.12300012312312
>> a=100004545.99923423499111;
>> a
a =
1.000045459992342e+008
16 karakter
10
8
>> format short
>> a=1.123000123123123123;
>> a
a =
1.1230
>> a=100004545.99923423499111;
>> a
a =
1.0000e+008
6 karakter
10
8
Bir saynn istenilen hanesinin gsterilmesi iin fprintf veya sprintf komutlar
kullanlr:
>>a=100004545.99923423499111;
>>fprintf(%1.10f,a)
100004545.9992342300
Matris elemanlarnn istenilen hanede
gsterilmesi iin,
printmatrix fonksiyonu olduka
kullanlldr (File-exchange sayfasndan
download edilebilir!)
15
MATLAB/Temel lineer cebir komutlar
inv(a) Bir a kare matrisinin tersini (inversini) alr.
a a matrisinin devriini (transpozesini) alr.
det(a) a matrisinin determinantn hesaplar.
a+b Boyutlar ayn olan a ve b matrisini toplar.
a-b Boyutlar ayn olan a ve b matrislerinin farkn alr.
a*b Stun says m olan a matrisiyle satr says m olan b matrisini arpar.
a/b b dzenli kare bir matrisse (determinant sfrdan farklysa), ayn boyutlu
a matrisiyle; a*inv(b) ilemini yapar.
a.*b Boyutlar ayn olan a ve b matrislerinin elemanlarn karlkl olarak
arpar.
a./b Boyutlar ayn olan a ve b matrislerinin elemanlarn karlkl oranlar.
16
MATLAB/Temel lineer cebir komutlar
trace(a) Bir a matrisinin izini (kegen elemanlarnn toplamn) hesaplar.
diag(a) Bir kare a matrisinin kegen elemanlarn bir stun vektre atar. Ya da
a bir vektr ise kegenleri bu vektrn elemanlarndan oluan bir
kegen matris oluturur.
sum(a) a matrisinin her bir stununun toplamn hesaplar. a bir vektr ise
sonu, vektr elemanlarnn toplam olur.
triu(a) Bir matrisin st gen matrisini oluturur.
tril(a) Bir matrisin alt gen matrisini oluturur.
zeros(m,n) mn boyutlu sfr matrisi oluturur.
ones(m,n) mn boyutlu elemanlar 1 olan matris oluturur.
eye(m) mm boyutlu birim matris oluturur.
17
MATLAB/Temel matris operatrleri
a(:) a matrisinin stunlarnn ard arda dizilmesinden oluan bir stun
vektr oluturur (vec operatr)
a(:,i) a matrisinin i. stununu alr.
a(j,:) a matrisinin j. satrn alr.
a(:,[i j]) a matrisinin i ve j. stununu alr.
a([i j],:) a matrisinin i ve j. satrn alr.
e=a:b:n a, (a+b),,n saylarndan oluan bir satr vektr oluturur.
rnein,
e=1:1:n, 1 ile n arasndaki tam saylardan oluan bir vektr.
e=2:2:n, 1 ile n arasndaki ift saylardan oluan bir vektr.
e=1:2:n, 1 ile n arasndaki tek saylardan oluan bir vektr.
e=-10:0.1:n, -10dan 0.1 artmla nye kadar olan saylardan oluan bir vektr.
18
MATLAB/Temel matris operatrleri
length(a) a matrisinin stun saysn verir. a bir vektr ise sonu, a vektrnn
eleman saysdr.
[m,n]=size(a)a matrisinin satr saysn (m) ve stun saysn (n) verir.
max(a) Bir a vektrnn en byk elemann gsterir.
min(a) Bir a vektrnn en kk elemann gsterir.
[m,i]=max(a) Bir a stun vektrnn en byk elemann (m) ve bunun satr
numarasn verir.
[m,i]=min(a) Bir a stun vektrnn en kk elemann (m) ve bunun satr
numarasn verir.
sort(a) Bir a vektrnn elemanlarn kkten bye sralar.
a(:,i)=[] Ann i. stununu siler.
a(i,:)=[] Ann i. satrn siler.
19
MATLAB/Temel matris operatrleri
sortrows(a,i) Bir a matrisinin elemanlarn i.stuna gre sralar.
rnek:
a =
1 1000
3 10
2 5
4 1
>> sortrows(a,1)
ans =
1 1000
2 5
3 10
4 1
a =
1 1000
3 10
2 5
4 1
>> sortrows(a,2)
ans =
4 1
2 5
3 10
1 1000
20
MATLAB/Uygulama-1
Aadaki ilemleri command windowda yapnz.
1) A matrisini giriniz.
2) A matrisinin determinantn hesaplaynz.
3) A matrisinin tersini bulunuz. kan sonucu bir B
matrisine ataynz.
4) A*B ilemini yapnz. Elde edilen sonucu irdeleyiniz.
5) A matrisinin 1. stununu a1, 3. stununu a3
vektrlerine ataynz.
6) Kegenleri A matrisinin kegenlerinden oluan bir C
kegen matrisi oluturunuz.
7) a1in devrii ile a3 vektrn arpnz.
8) a1 ile a3 vektr elemanlarn karlkl arpnz.
9) Ann 3. satrn, dier satr elemanlarn girmeden,
[5 6 7] olarak deitiriniz.
10)Ann 1 ve 2. satrlarn siliniz.

=
4 1 100
11 8 7
5 3 1
A
21
MATLAB/Uygulama-1:zm
>> A=[1 3 5;7 8 11;100 1 4];
>> det(A)
ans =
-728
>> inv(A)
ans =
-0.0288 0.0096 0.0096
-1.4725 0.6813 -0.0330
1.0893 -0.4107 0.0179
>> B=ans;
>> A*B
ans =
1.0000 0 0.0000
0 1.0000 0.0000
0 0.0000 1.0000
>>a1=A(:,1);a3=A(:,3);
>>C=diag(diag(A));
>>a1*a3
ans=
482
Birim matris
1
2
3
4
5
6
7
>> a1.*a3
ans=
5
77
400
>>A(3,:)=[5 6 7]
A =
1 3 5
7 8 11
5 6 7
>> A([1 2],:)=[]
A =
5 6 7
>>
8
9
10
22
MATLAB/Uygulama-2
Aadaki ilemleri command windowda yapnz.
1) B matrisini giriniz.
2) B matrisini mevcut alma klasrnze
katsayilar ismiyle kaydediniz.
3) Dosyann kaydedilip kaydedilmediini kontrol ediniz.
(Open Files penceresinden)
4) MATLAB oturumundaki tm deikenleri siliniz (clear)
5) Command windowda yazlm tm ifadeleri
temizleyiniz. (clc)
6) B*2 ilemini yapnz.
7) B matrisini geri arnz.
8) B matrisinin st ve alt gen matrislerini oluturunuz.
9) C=[B zeros(3,2)] ilemini yapnz.

=
3 1 10
7 8 70
5 5 10
B
23
MATLAB/Uygulama-2:zm
>> B=[10 5 5;70 8 7;10 1 3];
>> save katsayilar B
>> clear
>> clc
1
2
4
5
>> C=[B zeros(3,2)]
C =
10 5 5 0 0
70 8 7 0 0
10 1 3 0 0
9
8
6
7
>> B*2
??? Undefined function or
variable 'B'.
>> load katsayilar
>> triu(B)
ans =
10 5 5
0 8 7
0 0 3
>>tril(B)
ans =
10 0 0
70 8 0
10 1 3
3
Neden?
24
MATLAB/Diziler (Arrays)
Saylar : Say dizileri (numeric array)
Karakterler : Karakter dizileri (character array)
rnek:
c=1999 (numeric array)
d='Yildiz Teknik Universitesi' (character array)
f=[1999 2000] (numeric, matrix)
g=[d ' Insaat Fakultesi'] (character, matrix)
Not: Numeric ile character dizileri bir matriste bir arada bulunamaz! Yani,
bir matris hem say hem de bir kelimeyi ayn anda ieremez!
Hcreler : Hcre dizileri (cell array)
Yaplar : Yap dizileri (structure array)
25
MATLAB/Diziler (Arrays)
Hcre Dizileri (Cell arrays) { } ile tanmlanr. Bylesi bir dizi, farkl matrisleri
ayn isim altnda tutmak ve ilemek iin kullanlmaktadr.
rnein,
C{1}=[1 2;3 5],C{2}=[4 4 4 4];C{3}=[('yildiz teknik'),(' insaat')];
girildiinde, C bir hcre dizisi olur. Bu hcre geri arldnda,
C =
[2x2 double] [1x4 double] [1x20 char]
C{1} hcresi C{2} hcresi C{3} hcresi
Her bir hcre ayr ayr ilenir.
26
MATLAB/Diziler (Arrays)
C=cell(n) nn hcreden oluan bo bir hcreyi Cye atar. rnein n=2 iin
>> C=cell(2)
C =
[] []
[] []
hcresi oluturulur.
Bir hcrenin iine istenilen sayda yeni hcreler eklemek mmkndr; rnein,
C{1}{1}=[2 3] ile C aadaki biimde deiir;
C =
{1x1 cell} []
[] []
27
MATLAB/Diziler (Arrays)
C{1,1}
C{2,1}
C{3,1}
C{1,2}
C{2,2}
C{3,2}
C=cell(3,2) hcresi
C{1,2}{1,1}
C{1,2}{1,2}
C{1,2}{2,1}
C{1,2}{2,2}
C{1,2} hcresi
C{1,2}{2,2} hcresi
Yeni alt
hcre(ler)
28
MATLAB/Diziler (Arrays)
Yap dizileri (Structure arrays), veri tabanlar iin olduka kullanll bir dizi
trdr.
A.name='Cneyt';
A.sname='Aydin';
A.univ='YTU';
A.city='Istanbul';
A.email='caydin@yildiz.edu.tr';
A.year=2009;
ile A, bir structure array olur.
>>A
A =
name: 'Cneyt'
sname: 'Aydin'
univ: 'YTU'
city: 'Istanbul'
email: 'caydin@yildiz.edu.tr'
year: 2009
A yap dizisi arldnda,
Hcre ve yap dizileri, mat uzantl dosyalar olarak, daha nce aklanan save
komutuyla kaydedilip, load komutuyla geri arlabilir.
29
MATLAB/Diziler arasnda dnmler
num2str(a) Bir a saysn bir karaktere atama (From numeric to (2) string)
str2num(a) Karakter olan bir a saysn say deerine atama
mat2str(a) Bir a matrisini bir karakter dizisine atama
int2str(a) Bir a tam saysn bir karaktere atama
char(a) Bir a hcresini bir karakter dizisine atama
cellstr(a) Bir a karakterini bir hcre dizisine atama
num2cell(a) Bir a saysn bir hcre dizisine atama
30
MATLAB/Diziler arasnda dnmler
rnek: Bir ilem sonucunda a=10.234 elde edilsin. Elde edilen sonuc=10.234
karakterini grntlemek iin,
['Elde edilen sonuc=' num2str(a)]
yaps dnlmelidir.
Her iki ifade karakter olmaldr!
Bunun daha gelimi biimi, fprintf ile salanr:
fprintf('%s%1.4f',('Elde edilen sonuc='), a )
Karakter
Say
31
MATLAB/Uygulama-3
Aadaki ilemleri command windowda yapnz.
1. fprintf fonksiyonunu kullanarak, a=10.45623 saysn 3 haneye kadar yazdrnz.
2. [sayinin degeri= a] ifadesini, a virglden sonra 2 hane olacak biimde
yazdrnz.
3. Yukardaki ifadeyi bir b deikenine ataynz (sprintf ile)
4. bnin bir karakter dizisi olup olmadn denetleyiniz.
5. a deerini nnde 5 karakter boluk kalacak biimde 2 haneye kadar yazdrnz.
6. a deikenini msgbox(a,sonuc) ifadesiyle bir GUIye yazdrnz.
7. b deikenini msgbox(b,sonuc) ifadesiyle bir GUIye yazdrnz.
8. ann karakkn c deerine ataynz. b ve [sayinin karakoku, c] ifadesi alt alta
olacak biimde (c, virglden sonra 5 hane gsterilecek) msgbox iinde
yazdrnz.
32
MATLAB/Uygulama-3:zm
>> msgbox(b,sonuc)
>>
>>c=sqrt(a)
c =
3.2336
>>b1=sprintf(%s%1.5f,(sayinin
karakoku=),c);
>>g=char(b,b1);
>>msgbox(g,sonuc)
7
8
>> a=10.45623;fprintf(%1.3f,a)
10.456
>>
>>fprintf('%s%1.2f',('sayinin
degeri='),a)
sayinin degeri=10.46
>>
>>b=sprintf(%s%1.2f,('sayinin
degeri='),a)
b =
sayinin degeri=10.46
>>ischar(b)
ans=
1
>>fprintf(%10.2f,a)
10.46
>>msgbox(num2str(a),sonuc)
1
2
3
4
5
6
5 boluk+5 karakter
Not: b ve b1 karakter dizilerini alt alta
yazdrmann bir dier yolu, bunlar bir
hcre dizisi altnda dnmektir;
G=cell(2,1);G{1}=b;G{2}=b1;
msgbox(G,sonuc)
benzer sonucu retir.
33
MATLAB/Uygulama-4
Aadaki ilemleri command windowda yapnz.
1. Sonraki ilemlerde kullanlacak bir a say deerini, inputdlg fonksiyonu ile girdiren komutu
yaznz.
2. a deerinin bir say olup olmadn irdeleyiniz.
3. a*2 ilemini yapnz. Bu ilemin neden sonu vermediini irdeleyiniz.
4. a deerini, gerekli ise, say dizisine dntrnz.
34
MATLAB/Uygulama-4:zm
>> a=inputdlg(Bir sayi giriniz,YTU-2009)
a =
'150.123135465'
>>isnumeric(a)
ans =
0
>>a*2
>>?? Error using ==> *
Function '*' is not defined for values of class 'cell'.
>>a=str2num(char(a))
>>
a =
150.1231
1
2
3
4
inputdlg ile karakter hcre dizisi oluturulur.
Bu nedenle, girilen verinin say yaplmas
gerekir.
35
MATLAB/Program Dallandran fadeler
Dal yaplar, program kodlarndan istenilenleri seen ve onlar ileten,
istenilen kodlar ise deerlendirme d brakabilen MATLAB
ifadeleridir.
if
Switch, case
try/catch
yaplar ile oluturulur. Bu blmde try/catch yapsna
deinilmeyecektir.
36
MATLAB/if,end yaps
if (eer) yaps bir koulun gereklemesi durumunda bir ilemi yaptrmak iin sklkla kullanlr.
Bu ifade,
if koul
ilem
end
biimindedir.
rnek: Girilen bir saynn negatif olmas durumunda, sayy doal logaritmasyla deitiren bir kod
dnelim:
a=input(' bir sayi giriniz= ');
if a<0
a=log(a);
else
a=a;
end
a
Dier durumda
anlamndadr:
Burada, a>0
koulunu temsil eder.
a=input(' bir sayi giriniz= ');
if a<0
a=log(a);
end
if a>0
a=a;
end
a
Else yaps kullanlmasayd
37
MATLAB/switch,case yaps
switch (deitir) if yapsna benzer. Burada daha ok szel olarak belirtilen
durumlara gre ynlendirme ilemi yaplr. Bu yapnn kullanm case ile aadaki
gibidir;
switch durum
case durum1
ilem1
case durum2
ilem2
otherwise
ilem3
end
rnek: gun degiskeninin, is gunu olup olmadna karar vermek iin aadaki kodlar
dnlr;
clear,clc
gun=input('hangi gun=', 's');
switch lower(gun)
case {'pazartesi', 'sali','carsamba','persembe','cuma'}
disp('i gn')
case {'cumartesi','pazar'}
disp('TATL!')
end
Kullanm kiiye baldr.
38
MATLAB/switch,case yaps
Kullanc tarafndan girilen bir a=10.2424542
deikeninin virglden sonra 2mi 3 hane mi
yazdrlacan sorgulayan bir questdlg GUIsini
dnelim:
a=10.2424542;
dummy=questdlg('Virglden sonra ka...
hane verilsin?','Sonuc',...
'2 hane', '3...
hane','3 hane');
switch dummy
case {'2 hane'}
fprintf('%1.2f',a)
case {'3 hane'}
fprintf('%1.3f',a), end
2 hane dmesinin tklanmas durumunda,
10.24
sonucu grntlenir.
questdlg GUIsi
39
MATLAB/Uygulama-5
1 ve 2. noktann X ve Y koordinatlarnn girilmesinden sonra, (1-2) aklklk asnn
kanc blgeye dtn belirleyen, ilgili blgeyi bir msgbox kutusunda yazdran
bir program yaznz.
clear
clc
X1=input('X1=');Y1=input('Y1=');
X2=input('X2=');Y2=input('Y2=');
DX=X2-X1;DY=Y2-Y1;
if (DX>0) & (DY>0)
a=('Aci 1. bolgede');
end
if (DX<0) & (DY>0)
a=('Aci 2.bolgede');
end
zm
if (DX<0) & (DY<0)
a=('Aci 3.bolgede');
end
if (DX>0) & (DY<0)
a=('Aci 4.bolgede');
end
msgbox(a,'Bolge?')
40
MATLAB/Uygulama-6
1 ve 2. noktann X ve Y koordinatlarnn girilmesinden sonra, (1-2)
aklklk asn hesaplayan bir program yaznz.
clear
clc
X1=input('X1=');Y1=input('Y1=');
X2=input('X2=');Y2=input('Y2=');
DX=X2-X1;DY=Y2-Y1;
if (DX~=0)&(DY~=0),a=atan(DY/DX);a=a*200/pi;
if (DX>0)&(DY>0),a=a;end
if (DX<0)&(DY>0),a=a+200;end
if (DX<0)&(DY<0),a=a+200;end
if (DX>0)&(DY<0),a=a+400;end
end
if (DX==0)&(DY>0),a=100;end
zm
D koul
if (DX==0)&(DY<0),a=300;end
if (DX>=0)&(DY==0),a=0;end
if (DX<0)&(DY==0),a=200;end
a
%veya output a, aadaki biimde yazdrlabilir.
fprintf('%s%1.5f%s','(1-2) aciklik acisi=',a,' grad')
41
MATLAB/Uygulama-7
1 ve 2. noktann X ve Y koordinatlarnn girilmesinden sonra, (1-2)
aklklk asn ve (1-2) kenar uzunluunu hesaplayan bir program yaznz.
clear
clc
X1=input('X1=');Y1=input('Y1=');
X2=input('X2=');Y2=input('Y2=');
DX=X2-X1;DY=Y2-Y1;
if (DX~=0)&(DY~=0),a=atan(DY/DX);a=a*200/pi;
if (DX>0)&(DY>0),a=a;end
if (DX<0)&(DY>0),a=a+200;end
if (DX<0)&(DY<0),a=a+200;end
if (DX>0)&(DY<0),a=a+400;end
end
if (DX==0)&(DY>0),a=100;end
if (DX==0)&(DY<0),a=300;end
if (DX>=0)&(DY==0),a=0;end
if (DX<0)&(DY==0),a=200;end
S=sqrt(DX^2+DY^2);%kenar
fprintf('%s%1.5f%s','(1-2) aciklik acisi=',a,' grad')
fprintf('\n')
fprintf('%s%1.3f%s','(1-2) kenar uzunlugu=',S,' m')
zm
D koul
ki ifadeyi alt
alta yazdrmak
iin
Sonular, ayrca sprintf fonksiyonu
ile bir msgboxa alt alta yazdrnz.
42
MATLAB/Uygulama-9
Kullancy,1i semesi durumunda YT web sayfasina, 2yi semesi durumunda
istediiniz bir web sayfasina ynlendiren bir men program yaznz.
clear
clc
disp('[1]...YTU web sayfasi')
disp('[2]...Cneyt Aydn web sayfasi')
a=input('<Selection>=');
if (a>2)|(a<=0)
menu %Kullancnn 0,negatif veya 3den byk say girmesi
end durumunda, program yeniden balatmak iin
if a==1
web www.yildiz.edu.tr -browser
zm
end
if a==2
web www.yildiz.edu.tr/~caydin -browser
end
43
MATLAB/for,end dngs
for,end dngs bir ilemin birden daha fazla sayda yaptrlmasnda kullanlr.
(rnein, kk bulma problemlerinde kullanlan iterasyon zmleri). Kullanm,
for i=1:n (iTam say (integer))
ilem
end
biimindedir.
rnek: 1den Nye kadar olan saylarn toplamn yapan bir program dnelim.
clear,clc
N=input('bir sayi giriniz=');
say=0; %sayac
for i=1:N
say=say+i; %birikimli (kmlatif toplam)
end
say
44
MATLAB/while,end dngs
while,end dngs, belirli bir durumun gereklemesi durumunda bir ilemin birden
daha fazla sayda yaptrlmasnda kullanlr.
done=0;
while done==0
ilem
end
rnek: 1den Nye kadar olan saylarn toplamn while,end dngs ile yapan bir
program dnelim.
clear,clc
N=input('bir sayi giriniz=');
say=0; i=0;done=0;
while done==0
i=i+1; %bir nceki rnekte for,end dngsndeki i ye karlk gelir.
if i==N
done=1;
end
say=say+i;
end
say
1. Buradaki, while,end dngs, done deikeni ancak ve
ancak 0 olduu zaman alacaktr.
2. Bir nceki satrda, done deikeni 0 olarak atanm olduu
iin while,end dngs alr.
(while, end dngsn altran farkl algoritmalara burada
deinilmeyecektir).
i, son sayya (Nye) ulatnda, done deikenine 0dan farkl bir say
atanr. Bylece, whilen olduu satra gelindiinde, done 0 olmad
iin while, end dngs almaz (dng sonlanr). Program, bu
dngnn end satrnn hemen altndaki satrdan ileme devam eder
(burada, say deikeni command windowda yazdrlr.).
45
MATLAB/Uygulama-10
n sayda lnn tek tek dzeltmesi ve standart sapmas girildiinde ilgili lnn
kaba hatal olup olmadn belirleyen, kaba hatal lleri (varsa) yazdran bir program oluturunuz.
zm
clear,clc
n=input('olcu sayisi=');say=0;
for i=1:n
v=input('duzeltme=');
s=input('standart sapma=');
if abs(v)>=(3*s)
disp('--------------------------')
disp([int2str(i) '. olcu kaba hatali'])
disp('--------------------------')
say=say+1;KH(say,1)=i;
end
if abs(v)<(3*s)
disp('--------------------------')
disp([int2str(i) '. olcu normal'])
disp('--------------------------')
end
end
if say==0
disp('Kaba hatali olcu yok')
end
if say>0
disp('Kaba hatali olan olculer')
KH
end
46
MATLAB/Grafik
Matlabde grafikler figure penceresinde izdirilir.
ki ve boyutlu izim yan sra, kutupsal koordinat sisteminde de izim olana
bulunur (bak., polar).
Apsis (X)
O
r
d
i
n
a
t

(
Y
)
X
Y
Z
ki Boyutlu Koordinat Sistemi Boyutlu Koordinat Sistemi
47
MATLAB/Grafik
Matlabde en temel izim fonksiyonu plotdur.
rnein, x=0:0.1:5 olan bir dizi vektr elemanlarna karlk, y=x.^3+x.^2
fonksiyon deerleri hesaplatlsn.
plot(x,y) ile aadaki grafik izdirilir.
izilen grafiin zerinde birok deiiklik
yapmak mmkndr.
Bunun iin Edit plot dmesi tklanr.
lgili nesne (izdirilen eri, eksenler vb.) iki
kez tklanarak beliren Property Editor
penceresinden istenilen deiiklikler
yaplabilir.
Property Editor penceresinden yaplan her
trl deiiklii, komut olarak yaptrmak
mmkndr.
rnein, plot(x,y,'-o') hem ardk
noktalar ekildeki gibi birletirir, hem de
x,y nokta iftlerini grafik zerinde bir o
sembol ile iaretler.
Edit plot
48
MATLAB/Grafik
plot(x,y,'-o') ile ilgili grafik aadaki gibi olur.
Aadaki ifadelerle izimi
tekrarlaynz:
plot(x,y,'-o')
plot(x,y,'-*')
plot(x,y,'-+')
plot(x,y,'-^')
plot(x,y,'-.')
Sz edilen grafik zerindeki o,*,+
gibi sembollere marker denir.
plot fonksiyonu ile ilgili erinin
rengini deitirmek de mmkndr:
plot(x,y,'r') krmz (red)
plot(x,y,'k') siyah
plot(x,y,'b') mavi (blue)
plot(x,y,'g') yeil (green)
49
MATLAB/Grafik-Kaydetme ve kopyalama
izilen grafikleri kaydetmek iin Figure penceresindeki File mensnden Save veya
Save As seenekleri seilir. Grafikler, fig uzantl dosyalar olarak ilgili klasre
kaydedilirler.
izilen grafiklerin baka bir ortama aktarlmalar iin, Edit mensnn altndaki Copy
Figure seenei seilir. (Not: Kopyalamann arka plan rengini ayarlamak iin Copy
Options seeneine baknz.)
50
MATLAB/Grafik-Ayn eksen takmna farkl grafikler izdirme
Ayn eksen takmna farkl grafikleri izdirmek iin hold on ve hold off komutlar
kullanlr. Bu iki komut arasna yazlan her trl grafiin izimi ayn eksen
takmnda gsterilir.
rnein, ya=[1;1.2;2.4;4.5] ve yb=[0.5;0.8;1.8;0] vektrleri ile ifade
edilen iki farkl l grubunu x=[1;2;3;4] vektrne gre ayn eksen takmnda
izdirmek iin aadaki komutlar yazmak yeterlidir:
hold on, plot(ya), plot(yb,'r'),hold off
Not: Eer x ekseni, bu rnekte
olduu gibi, y deerlerinin indisini,
yani kanc deer olduunu,
gsteriyorsa, plot fonksiyonunda
xin yeniden belirtilmesine gerek
yoktur.
51
MATLAB/Grafik-Grafik yoluyla bilgi retme
rnek: ya=randn(1000,1) ve yb=randn(1000,1)*3 biiminde iki l grubu
oluturalm. (randn fonksiyonu, beklenen deeri 0, standart sapmas 1 olan normal
dalm say retir). yann standart sapmas 1, ybnin standart sapmas ise 3tr.
Bu llerin, a ve b kaynaklarndan elde edildiini ve de standart sapmalarn
bilmediimizi dnelim. Hangi l grubunun daha kaliteli olduunu (standart sapmasnn
dk olduunu) grafik zerinden grebilmek iin, bir nceki rnekteki hold on/hold off
komutlarn kullanarak bunlar izdirmek yeterli olacaktr:
hold on, plot(ya), plot(yb,'r'),hold off
Bylece, krmz ile
gsterilmi yb llerinin
sfrdan daha ok saptklar,
dolaysyla standart
sapmasnn daha yksek
olduu bilgisi grafik zerinden
kolaylkla okunabilmektedir.
Not: sqrt(yb*yb/999) ilemi, yann deneysel standart sapmasn verecektir (bkz. statistik
Ders Notlar). Bu deerin 3 kuramsal standart sapma deerine yakn olacana dikkat ediniz.
52
MATLAB/Grafik-Grafik yoluyla bilgi retme
Bir nceki rnekte kullanlan ya ve yb llerinin birbirleriyle nasl bir ilikide olduunu
grmek iin,
plot(ya,yb,'.')
komutunu kullanmak yeterlidir.
lgili grafikten, ya ve yb lleri
arasnda anlaml bir iliki
(korelasyon) olmad bilgisi
hemen tretilebilir. nk
beklenen deerleri 0 olan bu iki
gruba ilikin l iftleri, 0
merkezinde dzgn olarak
(daire biiminde) dalmlardr.
ki l grubu arasnda
korelasyon olabilmesi iin, bu
nokta bulutunun bir doru
etrafnda gzlenmesi gerekir.
53
MATLAB/Grafik-Grafik yoluyla bilgi retme
Bir nceki rnekte kullanlan yb llerini, yb=2+3*ya+randn(1000,1)*1,
biiminde ya llerine bal olarak retelim. Bu durumda,
plot(ya,yb,'.')
ile oluturulan grafikten ya ve yb lleri arasndaki korelasyonun varl hemen
grlecektir.
54
MATLAB/Grafik-Grafik yoluyla bilgi retme
Mhendislik uygulamalarnda en ok karlalan problemlerden biri de F(x)=0
biimindeki bir denklemin ilgili aralktaki kkn (fonksiyonu sfr yapan x deerini)
bulmaktr. Saysal analizde kullanlan Newton-Raphson gibi yntemlerde kkn
yaklak deerine ihtiya vardr. Bu yaklak deeri bulmak iin grafik izimi olduka
kullanl olmaktadr. rnein,
F(x)=x
3
+x
2
-5=0 gibi bir denklemin -2 ile 2 arasndaki yaklak kkn bulmak iin,
x=-2:0.1:2 biiminde x deerleri ve y=x.^3+x.^2-5 ile de bu xlere karlk y
deerleri retilir.
plot(x,y),grid on
komutlaryla aadaki grafik izdirilir.(grid on komutu ekildeki grid an izer)
y=0 dorusunun eriyi kestii
noktadan, x eksenine hayali bir dik
inilirse, bu dikin gsterdii x deeri,
F(x) denklemini salayan kk
olacaktr. Buradan kkn yaklak
deerinin 1.4 olduu sonucuna
kolaylkla ulalr.
Not: Figure penceresindeki bytme
zellii ile, ilgili kesiim noktasna
zoom yaplarak, yaklak kk daha
hassas biimde belirlenir.
y=x
3
+x
2
-5 erisi
55
MATLAB/Grafik-Basic Fitting Tool
Bir mhendis, bir olay gzler ve gzlem sonucunda elde ettii ller yoluyla olay
matematiksel eitliklerle aklamaya alr. Bylesi eitliklere, ksaca model ad
verilir.
Figure penceresinde yer alan Tools mens iindeki Basic Fitting seenei grafik
zerindeki x ve bunlara karlk gelen y deerlerini kullanarak, bunlara en iyi uyan
y=f(x) polinomunu tanmlar. Bylece olduka pratik bir biimde model oluturulur.
Burada hatrlatlmas gereken iki nokta vardr:
(1) Eer nokta ifti (x,y) says uydurulan polinomun bilinmeyen saysna eitse,
bulunan fonksiyon bir enterpolasyon polinomudur.
(Not: n. dereceden bir polinomun n+1 adet bilinmeyeni olduunu hatrlaynz: rnein 4.
dereceden bir polinom; y=ax
4
+bx
3
+cx
2
+dx+e dir ve bilinmeyen says 5dir)
(2) Eer nokta ifti says, uydurulan polinomun bilinmeyen saysndan fazlaysa en
uygun polinom bir en kk kareler kestirim yntemi sonucudur. y deerleri hatal
byklklerse (yani l ise), basic fitting ile uydurulacak polinomun bilinmeyen says
her zaman l saysndan kk olmaldr!
56
MATLAB/Grafik-Basic Fitting Tool
f 5 10 15 20
t 2.57 2.23 2.13 2.09
rnek: Aadaki tabloda f= 5, 10, 15 ve 20 deerlerine karlk t-dalmnn =%5 gven
snrlar (t, deerleri) verilmektedir. t=af
3
+bf
2
+cf+d polinomunu basic fitting zelliini kullanarak
belirleyiniz. f=9 iin t=2.26 olduuna gre elde edilen enterpolasyon polinomun doruluunu test
ediniz.
zm: x=[5;10;15;20] ve y=[2.57;2.23;2.13;2.09] olsun. plot(x,y) ile ilgili eri izilir.
Figure penceresindeki Tools
mensnden, Basic Fitting
seenei seilir.
Alan, Basic Fitting
penceresinden ilgili polinom
(burada, cubic, yani 3.derece) ve
ardndan, show equations
seenei iaretlenir.
ekil zerinde gsterilen f(x)
eitlii, bize enterpolasyon
polinomunu vermektedir.
Bu denklemde, x=9 girilirse,
y=2.24 deeri elde edilir. f=9 iin
t=2.26 olduu bilindiine gre,
enterpolasyon polinomumuzun
doruluu-bu aralk iin-%2dir.
57
MATLAB/Grafik-Basic Fitting Tool
x 0 1 2 3 4 5
y 10.06 9.36 16.69 22.28 25.44 27.75
rnek: Aadaki tabloda, x zamanlarna karlk y lleri elde edilmitir. llere en iyi
uyan y=a+bx dorusunu belirleyiniz (En kk kareler kestirim yntemi)
zm: Tablodaki deerler x ve y vektrlerine atanr. plot(x,y,'o')ile ilgili eri izilir.
Basic Fitting penceresinde, linear, show equation, plot residuals seenekleri iaretlendiinde,
aadaki grafik oluturulur.
llerin, belirlenen
doru denkleminden
sapmasn (dzeltmeleri-
residuals) gsterir.
En kk kareler
yntemine gre
belirlenen
en uygun doru
denklemi (model)
*
* Demirel H (2005), Dengeleme Hesab
Ders Notlar, YT, stanbul
58
MATLAB/Grafik-ubuk (bar) ve stem grafii
Matlabde farkl gsterimlere gre izim yapmak mmkndr. Bunlardan ikisi bar()
ve stem() izim fonksiyonlardr.
rnek: x=[5;10;100;20;2] vektr elemanlarnn bar ve stem grafik olarak gstermek
isteyelim. bar(x) ve stem(x) aadaki grafikleri izdirecektir.
Bar grafii Stem grafii
59
MATLAB/Grafik-Histogram
llerin hangi istatistiksel dalma uyduunu grebilmek iin, frekans (sklk)
deerleri hesaplanr ve histogram grafikleri izilir.
Elimizde, ayn dalmda olduu bilinen bir x l vektr varsa, hist(x) fonksiyonu
otomatik olarak bir histogram grafii izer.
rnein, x=randn(100,1)*3 biiminde normal dalm bir l grubu retelim.
hist(x) ile aadaki histogram grafii oluturulur (Her bir barn st noktas
birletirildiinde oluan erinin bir normal dalm erisi veya dier adyla an erisi
biiminde olduu grlecektir.)
Sklk
x
60
MATLAB/Grafik-Vektr izimi
x ve y koordinat deerlerine sahip bir noktann dx ve dy kadar yer deitirdii dnlsn.
Bu noktadaki (dx,dy) vektrn izdirmek istediimizde, quiver fonksiyonu kullanlr.
rnein, bir jeodezik dik koordinat sisteminde iki noktann koordinatlar x=[1000;2000],
y=[5000;1000] vektrleri, bu noktadaki deiimler ise dx=[1;2] ve dy=[-0.5;0.8] ile
tanmlansn.
quiver(y,x,dy,dx) (Not: Bir jeodezik dik koordinat sisteminde x ve ynin yer deitirdiini hatrlaynz!)
komutu ile bir jeodezik dik koordinat sisteminde vektr izimi gerekletirilir.
Vektrleri leklendirmek iin, s
lek faktr quiver fonksiyonuna
beinci bir deiken olarak
eklenmelidir;
quiver(y,x,dy,dx,s)
61
MATLAB/Grafik-Kanava izimi
Bir jeodezik dik koordinat sistemindeki x ve y koordinatlar verilen jeodezik noktalar, nokta
sembolleri gen olacak biimde izdiriniz.
plot(y,x,'^')
axis([200 1700 200 1500])
axis equal
Nokta P1 P2 P3 P4
x (m) 500.00 550.00 1000.00 1200.00
y (m) 500.00 750.00 1500.00 800.00
axis([Xmin Xmax Ymin Ymax])
fonksiyonu, eksenlerin en kk
ve en byk deerlerini ayarlar,
axis equal ise x ve y
eksenlerindeki lek faktrn
(byme ve klme oranlarn)
eitler.
62
MATLAB/Grafik-nterpolasyon
x ve y koordinatlar bilinen noktalara ilikin nc bir bilgi (rnein, ykseklik, ykseklik
deiimi, scaklk, nem, basn, gelgit deformasyonu, anomali vb.) olduunda, noktalarn
evreledii alann iindeki hayali noktalar iin bu bilgiler, eitli matematiksel yaklamlarla
retilebilir: Bu ileme, ksaca, interpolasyon denir.
Bylesi hayali noktalar, alann iindeki belirli byklkteki kareler ann ke noktalar
olabilir. Bu noktalara grid noktalar denir. Matlabde, sonraki interpolasyon ilemlerinde
kullanlmak zere, meshgrid fonksiyonu ile bu noktalarn x-y koordinatlar belirlenir.
ncelikle, x ve y eksenleri, sz konusu karenin kenar bykl kadar paralara ayrlr.
rnein, kenar bykl 10 m olsun: Bylece eksenler aadaki biimde 10 mlik paralara
blnr;
x1=xmin:10:xmax; y1=ymin:10:ymax
Daha sonra, [XI, YI]=meshgrid(x1,y1)ile gridlerin ke nokta koordinatlar XI ve YI
matrislerine yazdrlr.
HI=griddata(y,x,H,YI,XI,'v4') fonksiyonu ile x ve y koordinatlarna sahip jeodezik
noktalardaki nc bilginin topland H, koordinatlar XI ve YIda tanmlanm grid noktalar
iin v4 yntemiyle interpole edilir; grid noktalarna ilikin nc bilgi HI vektrnde toplanr.
(Not: v4 ynteminden baka, cubic, linear gibi interpolasyon yntemleri de bulunur)
63
MATLAB/Grafik-nterpolasyon
rnek: Nokta koordinatlar, x=[1000;1200;4000;1000], y=[1500; 2000;3000;3500] ile ve
bu noktalarn ykseklikleri, H=[100.0000;95.9850;50.5000;140.1200] ile tanmlansn.
Blgeyi 10 mlik gridlere blerek, blgenin ykseklik deerlerini gsteren bir renk haritas
hazrlaynz.
clear,clc
x=[1000;1200;4000;1000];
y=[1500;2000;3000;3500];
H=[100.0000;95.9850;50.5000;140.1200];
x1=1000:10:4500;
y1=1500:10:4000;
[XI,YI]=meshgrid(x1,y1);
HI=griddata(y,x,H,YI,XI,'v4');
hold on,
pcolor(YI,XI,HI),
shading interp
colormap('jet')
plot(y,x,'o','MarkerFacecolor','b')
hold off
Not: v4 interpolasyonu yerine, dier interpolasyon yntemlerini kullanarak aradaki farklar irdeleyiniz.
64
MATLAB/Grafik-Contour Haritas ve 3B izim
Contour (rnein, e ykselti erileri) haritas iin contour ve clabel
fonksiyonlarna,
boyutlu yzey izimleri iin mesh, surf, surfl ve surfc fonksiyonlarna
baknz.
surfc fonksiyonu ile oluturulmu bir yzey grafii
65
MATLAB/Dosya Yazdrma-Okuma
Program sonularnn otomatik olarak farkl bir dosyaya yazdrlmas veya bir dosyadaki
bilgilerin okunarak program ierisinde kullanlmas, programclkta olduka sk bavurulan
kt alma ve veri girii yntemleridir.
Dosya yazdrma, kt almaya; Dosya okuma ise veri giriine karlk olan ilemlerdir.
Matlabde dosya yazdrma, en basit biimde, diary komutuyla gerekletirilir. Kullanm ise
aadaki biimdedir;
a=10;
diary sonuc.txt
disp('-----------------')
disp(a)
diary end
ki diary komutu arasndaki
command window da yazdrlacak
her trl bilgi, sonuc.txt dosyasna
yazdrlr. sonuc.txt dosyas,
mevcut klasrn iinde oluturulur,
rnekteki, sonuc.txt dosyas yerine
baka dosya tr ve isimleri
kullanlabilir.
Yazdrlacak olan dosya, daha
nce oluturulmu bir dosya ise,
kt dosyann iindeki metinin
altna yazdrlr.
66
MATLAB/Dosya Yazdrma-Okuma
Daha gelimi dosya yazdrma, fopen, fprintf ve fclose fonksiyonlarnn kullanm ile
gerekletirilir.
Bu fonksiyonlar ile dosya yazdrmada, yazdrlacak olan metnin command window da
gsterilmesine gerek yoktur.
fopen, program ktlarnn yazdrlaca dosyay aar, fprintf yazdrr ve fclose ise yazdrma
ilemini sonlandrr.
rnein, bir a kenar programda hesaplatlm olsun. Bu programn a ktsn, kenar.txt
isimli bir dosyaya yazdrmak iin, aadaki kodlar dnlr;
a=150.0234234;
fid=fopen('kenar.txt','w');
fprintf(fid,'%s%1.4f','kenar uzunlugu=',a);
fclose(fid);
w bu dosyann zerine yazlacan gsterir.
(a mevcut metnin altna yaz demektir)
67
MATLAB/Dosya Yazdrma-Okuma
rnek: a=[3.12356 4.12456 1;5.8463 6.45111 2;4 5 6] biiminde verilen bir a matrisini,
elemanlar virglden sonra 4 hane olacak biimde, mat.out dosyasna yazdran bir program
yaznz.
a=[3.12356 4.12456 1;5.8463 6.45111 2;4 5 6]
fid = fopen('mat.out','w');
fprintf(fid,'%1.4f%10.4f%10.4f\n',a);
fclose(fid);
rnek: kenar=1500.123 m ve aciklik=103.3367 grad olan deikenleri, sonuc.out
dosyasna alt alta yazdrnz.
kenar=1500.123;
aciklik=103.3367;
fid=fopen('sonuc.out','w')
fprintf(fid,'%s%1.3f%s\r\n','kenar=',kenar,' m');
fprintf(fid,'%s%1.4f%s','aciklik=',aciklik,' grad');
fclose(fid)
68
MATLAB/Dosya Yazdrma-Okuma
Matlabde dosyalarn iindeki metnin okunmas iin textread fonksiyonu bulunmaktadr.
rnein, aada koordinat.txt dosyasndaki verilerin okunmas istensin:
P1 1000.1234 1300.23423
P2 1300.5673 1450.98563
P3 2000.1500 2000.11000
P4 3500.3100 1000.12000
Nokta isimleri x koordinatlar y koordinatlar
Bunun iin,
[nokta,x,y]=textread('koordinat.txt','%s%f%f')
fonksiyonu kullanlr. nokta, nokta isimlerini ieren bir hcre dizisi; x, x koordinat vektr
ve y, y koordinat vektr olarak atanr.
69
MATLAB/Dosya Yazdrma-Okuma
rnek: Koordinat dosyas, aadaki gibi olan bir koordinat.txt dosyasndan, nokta isimlerini,
x ve y koordinatlarn textread fonksiyonu kullanarak uygun deikenlere ataynz.
Nirengi koordinatlar
NN x(m) y(m)
P1 1000.1234 1300.23423
P2 1300.5673 1450.98563
P3 2000.1500 2000.11000
P4 3500.3100 1000.12000
[nokta,x,y]=textread('koordinat.txt','%s%f%f','headerlines',2)
'headerlines komutu ve ardndan gelen say, dosyann balangcndan itibaren ka tane satrn
dikkate alnmayacan gsterir.
koordinat.txt dosyasnda ilk iki satr alnmadan nokta isimleri, x ve y koordinatlar okunmutur.
70
MATLAB/Fonksiyon Dosyas Oluturma
Matlab fonksiyonlar (rnein, inv, disp, num2str,det, textread) kullancnn bir baka
programa gerek duymakszn temel ilemleri kolayca yapabilmesini salar.
Kullanclar kendi fonksiyonlarn gelitirebilirler.
Fonksiyonlar, bir m-dosyas biiminde saklanr ve bu dosyalara, fonksiyon dosyalar ad
verilir.
Fonksiyon oluturmann iki nemli getirisi vardr:
Srekli olarak uygulanan bir ilem iin kod tekrarn nler (rnein, aklk as iin yazlm bir
fonksiyon aciklik ise, programn ilgili yerinde aciklik(X1,Y1,X2,Y2) fonksiyonu (1-2)
veya (2-1) aciklik acisini dorudan retecektir.
Fonksiyonlarda kullanlan deikenler yereldir (local variables). Yani workspace iinde dier
program trlerinin deikenleri (global variables) gibi yer igal etmezler.
71
MATLAB/Fonksiyon Dosyas Oluturma
rnek: Koordinatlar bilinen iki nokta arasndaki yatay uzunluu hesaplayan kenar isimli bir
fonksiyon oluturunuz.
Fonksiyonlarn, biim olarak, dier
programlardan tek fark,
function output=fonk_ismi(input)
ile balamas ve fonksiyon dosyasnn
sonunda end ile bitmesidir.
function komutunun bulunduu ilk
satrdan hemen sonra gelen aklama
(comment) satrlar, ilgili fonksiyonun
yardm metinleridir.
Fonksiyon ismiyle, fonksiyon
dosyasnn ismi ayn olmaldr.
72
MATLAB/Fonksiyon Dosyas Oluturma
rnek: Hem aklk asn hem de kenar uzunluunu reten aci_kenar isimli bir fonksiyon
oluturunuz.
Bir fonksiyonun birden fazla kts olabilir.
Bu rnekte a ve S gibi iki kt
bulunmaktadr.
a, aklk asn, S ise kenar uzunluunu
gstermektedir.
aci_kenar(X1,Y1,X2,Y2) komutuyla, ilk
output, yani aklk asn belirten a
deikeni retilir.
Matlab Hzl Eriim Klavuzu
1
Temel Komutlar

hel p y
Bir y fonksiyonu iin yardm
cl ear
Atanan tm deikenlerin
silinmesi
cl ear x
Bir x deikeninin silinmesi
pwd
alma klasr yolu
demo
Matlab demo penceresi
save
Matris kaydetme
l oad
Matris geri arma
cl c
alma penceresinin
temizlenmesi

Matematiksel Operatrler

+
Toplama
-
karma
*
arpma
/
Blme
^
st alma
. *
Elemanter arpm
. /
Elemanter blme
. ^
Elemanter st alma
sqr t
Kk alma
abs
Mutlak deer

Mantksal Operatrler

&
Ve
|
Veya
~
Deil
/
Blme

Karar Operatrleri

>
Byktr
<
Kktr
>=
Byk eittir
<=
Kk eittir
==
Eittir
~=
Eit deildir





Semboller

%
Aklama getirme ifadesi
[ ]
Matris girme ifadesi
( )
ndis ve deer girme ifadesi
=
Deiken atama ifadesi
;
Matrislerde satr ayrac.
Ayrca, iinde "=" bulunan
bir ilemin gsterilmemesi
:
Kolon ifadesi
ans
Deiken atanmam en son
ilem iin varsaylan
deiken ismi (answer)
{ }
Hcre dizisi
x. adi
x yap dizisi

Sabit terimler

pi
says
eps
2.2204e-016 says
i nf
Sonsuz (belirsiz) ifadesi

Trigonometrik Fonksiyonlar

si n, cos, t an, cot
Trig. Fonksiyonlar


asi n, acos, at an, acot
Ters Trig. ifadeler

Logaritmik Fonksiyonlar

l og
Doal logaritma
exp
Eksponansiyel

Lineer Cebir Fonksiyonlar

det ( x)
Bir x matrisinin determinant
i nv( x)
Bir x matrisinin tersi
t r ace( x)
Bir x matrisinin izi
di ag( x)
Bir x matrisinin kegen
elemanlar
di ag( y)
Kegenleri, bir y vektrnn
elemanlar olan kegen matris
zer os
Sfr matris
ones
Birler matrisi
eye
Birim matris
ei g
zdeer ve zvektr bulma
Matlab Hzl Eriim Klavuzu
2
Yazdrma Fonksiyonlar

f pr i nt f
Bir ifadenin yazdrlmas
spr i nt f
Bir ifadenin bir karakter dizisine
atanmas
di sp
Bir ifadenin ekran kts olarak
gsterilmesi

Karakter dizisi fonksiyonlar

num2st r ( x) Bir x saysn bir karaktere
atama
st r 2num( x) Karakter olan bir x saysn
say deerine atama
char ( a) a hcresini bir karaktere
atama
char ( s1, s2, ) s1,s2, karakterlerinden
yeni bir karakter dizisi
oluturma
l ower ( s) Bir s karakter dizisinin tm
elemanlarn kk harf
yapma
upper ( s) Bir s karakter dizisinin tm
elemanlarn byk harf
yapma
i snumer i c Bir deikenin say olup
olmadn sorgulama
i schar Bir deikenin karakter
olup olmadn sorgulama
i scel l Bir deikenin hcre olup
olmadn sorgulama
Hazr GUI'ler


msgbox
leti penceresi
i nput dl g
Deer girme penceresi
quest dl g
Soru diyalog penceresi
ui get f i l e
Open file diyalog penceresi
ui get di r
Open directory diyalog pen.
Ui put f i l e
Save file diyalog penceresi

Say yuvarlatma fonksiyonlar

f i x
Sfra yuvarlatma
f l oor
Negatif sonsuza yuvarlatma
cei l
Pozitif sonsuza yuvarlatma
r ound
En yakn tam sayya
yuvarlatma
Baz matematiksel fonksiyonlar

sum( x)
Bir x vektr elemanlarnn
toplam
di f f ( x)
Bir x vektr elemanlarnn
ardk farklandrlmas
mean( x)
Bir x vektr elemanlarnn
ortalamas
medi an( x)
Bir x vektr elemanlarnn
orta deeri (medyan)
sor t ( x)
Bir x vektr elemanlarnn
kkten bye sralanmas
max, mi n
En byk ve en kk deer
bulma
sor t r ows
lgili stuna gre kkten
bye sralama

Programlama

i f / end
Eer koulu
f or / next
Dng
whi l e/ end
while dngs
i nput
Deiken girdirme

izim

pl ot
2 boyutlu grafik
pl ot 3
3 boyutlu grafik
hi st , bar
Histogram ve bar grafikleri
sur f , mesh
Yzey grafikleri
f i gur e
izim penceresi oluturma
(ki veya daha fazla saydaki
grafikleri ayr pencerelerde
gstermek iin)
hol d on,
hol d of f
Farkl grafikleri ayn eksen
takmnda izdirme
komutlar
axi s
Eksen komutu
axi s equal
Eksenleri eit lek katsays
ile leklendirme
st em
ubuk grafik
pl ot yy
ift y eksenli grafik
er r or bar
Hata bar grafii

You might also like