Professional Documents
Culture Documents
Matlab Basic11 PDF
Matlab Basic11 PDF
MATLAB
Yardmc Ders Notlar
stanbul-2012
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
1
Kaynaka
2
MATLAB (MATrix LABoratuary)
http://www.mathworks.com/matlabcentral/
lk olarak Fortran dili ile yazlan MATLAB, daha sonra C ile yazlmtr.
3
MATLAB (MATrix LABoratuary)
4
MATLAB (MATrix LABoratuary)
Avantajlar:
Kullanm kolayl,
5
MATLAB/Command window (komut penceresi)
Current directory
(alma klasr)
6
MATLAB/Workspace ( alan)
Atanan
deiken Workspace penceresini
amann komut yolu
7
MATLAB/Array Editor (Dizi editr)
>>open('a')
workspace penceresinde ilgili
deiken iki kez tklanr.
Daha nce atanan bir deikenin
boyutlar istenildii gibi deitirilebilir!
8
MATLAB/Temel Komutlar
9
MATLAB/Temel dosya trleri
10
MATLAB/Matrislerin Girilmesi
rnein:
1.yol 2.yol
1 3 5 A=[1 3 5
A = 7 8 11 7 8 11 A=[1 3 5;7 8 11;100 1 4]
100 1 4]
100 1 4
3.yol
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
11
MATLAB/Matrislerin Kaydedilmesi
Matris ve vektrler *.mat uzantl olarak save komutuyla kaydedilir, load
ile de istenilen yerden geri arlr.
save D:\yildiz\katsayilar a
load D:\yildiz\katsayilar
Yeni bir matrisi katsayilar.mat olarak kaydettiimizde, nceki matrisi bir daha
grme imkan kalmaz. Yani save overwrite (zerine yazma) zelliklidir.
12
MATLAB/Matrislerin Kaydedilmesi
Open files
Dosyadaki
Dosya deiken
trn workspacede
MAT-files oluturulur.
olarak
deitir.
13
MATLAB/Say Formatlar
>> format long >> format short
>> a=1.123000123123123123; >> a=1.123000123123123123;
>> a >> a
a = 16 karakter a = 6 karakter
1.12300012312312 1.1230
1.000045459992342e+008 1.0000e+008
Bir saynn istenilen hanesinin gsterilmesi iin fprintf veya sprintf komutlar
kullanlr:
>>a=100004545.99923423499111; Matris elemanlarnn istenilen hanede
>>fprintf(%1.10f,a) gsterilmesi iin,
printmatrix fonksiyonu olduka
kullanlldr (File-exchange sayfasndan
100004545.9992342300 download edilebilir!)
14
MATLAB/Temel lineer cebir komutlar
inv(a) Bir a kare matrisinin tersini (inversini) 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.
15
MATLAB/Temel lineer cebir komutlar
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.
16
MATLAB/Temel matris operatrleri
a(:) a matrisinin stunlarnn ard arda dizilmesinden oluan bir stun
vektr oluturur (vec operatr)
rnein,
17
MATLAB/Temel matris operatrleri
length(a) a matrisinin stun saysn verir. a bir vektr ise sonu, a vektrnn
eleman saysdr.
18
MATLAB/Temel matris operatrleri
rnek:
a = a =
1 1000 1 1000
3 10 3 10
2 5 2 5
4 1 4 1
ans = ans =
1 1000 4 1
2 5 2 5
3 10 3 10
4 1 1 1000
19
MATLAB/Uygulama-1
Aadaki ilemleri command windowda yapnz.
1 3 5
A = 7 8 11 1) A matrisini giriniz.
2) A matrisinin determinantn hesaplaynz.
100 1 4 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.
20
MATLAB/Uygulama-1:zm
21
MATLAB/Uygulama-2
22
MATLAB/Uygulama-2:zm
1 3
>> B=[10 5 5;70 8 7;10 1 3];
2 >> save katsayilar B
4 >> clear
5 >> clc
6 >> B*2
??? Undefined function or Neden?
variable 'B'.
23
MATLAB/Diziler (Arrays)
Not: Numeric ile character dizileri bir matriste bir arada bulunamaz! Yani,
bir matris hem say hem de bir kelimeyi ayn anda ieremez!
24
MATLAB/Diziler (Arrays)
Hcre Dizileri (Cell arrays) { } ile tanmlanr. Bylesi bir dizi, farkl matrisleri
ayn isim altnda tutmak ve ilemek iin kullanlmaktadr.
rnein,
C =
25
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} []
[] []
26
MATLAB/Diziler (Arrays)
C=cell(3,2) hcresi
C{1,2} hcresi
C{1,1} C{1,2}
C{1,2}{1,1} C{1,2}{1,2}
C{2,1} C{2,2}
C{1,2}{2,1} C{1,2}{2,2}
C{3,1} C{3,2}
Yeni alt
hcre(ler)
C{1,2}{2,2} hcresi
27
MATLAB/Diziler (Arrays)
Yap dizileri (Structure arrays), veri tabanlar iin olduka kullanll bir dizi
trdr.
A yap dizisi arldnda,
A.name='Cneyt'; >>A
A.sname='Aydin';
A =
A.univ='YTU'; name: 'Cneyt'
A.city='Istanbul'; sname: 'Aydin'
A.email='caydin@yildiz.edu.tr'; univ: 'YTU'
A.year=2009; city: 'Istanbul'
email: 'caydin@yildiz.edu.tr'
year: 2009
ile A, bir structure array olur.
Hcre ve yap dizileri, mat uzantl dosyalar olarak, daha nce aklanan save
komutuyla kaydedilip, load komutuyla geri arlabilir.
28
MATLAB/Diziler arasnda dnmler
num2str(a) Bir a saysn bir karaktere atama (From numeric to (2) string)
29
MATLAB/Diziler arasnda dnmler
rnek: Bir ilem sonucunda a=10.234 elde edilsin. Elde edilen sonuc=10.234
karakterini grntlemek iin,
Her iki ifade karakter olmaldr!
['Elde edilen sonuc=' num2str(a)]
yaps dnlmelidir.
Say
30
MATLAB/Uygulama-3
Aadaki ilemleri command windowda yapnz.
31
MATLAB/Uygulama-3:zm
1 >> a=10.45623;fprintf(%1.3f,a) 7 >> msgbox(b,sonuc)
10.456 >>
>> 8 >>c=sqrt(a)
2 >>fprintf('%s%1.2f',('sayinin c =
degeri='),a)
sayinin degeri=10.46 3.2336
3
>> >>b1=sprintf(%s%1.5f,(sayinin
>>b=sprintf(%s%1.2f,('sayinin karakoku=),c);
degeri='),a) >>g=char(b,b1);
b = >>msgbox(g,sonuc)
4
sayinin degeri=10.46
G=cell(2,1);G{1}=b;G{2}=b1;
msgbox(G,sonuc)
32
MATLAB/Uygulama-4
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.
33
MATLAB/Uygulama-4:zm
1
>> a=inputdlg(Bir sayi giriniz,YTU-2009)
a =
inputdlg ile karakter hcre dizisi oluturulur.
'150.123135465' Bu nedenle, girilen verinin say yaplmas
2 >>isnumeric(a) gerekir.
ans =
0
3 >>a*2
>>?? Error using ==> *
Function '*' is not defined for values of class 'cell'.
4 >>a=str2num(char(a))
>>
a =
150.1231
34
MATLAB/Program Dallandran fadeler
if
Switch, case
try/catch
35
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:
36
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
Kullanm kiiye baldr.
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
37
MATLAB/switch,case yaps
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)
2 hane dmesinin tklanmas durumunda,
case {'3 hane'}
fprintf('%1.3f',a), end 10.24
sonucu grntlenir.
38
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
zm 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
msgbox(a,'Bolge?')
39
MATLAB/Uygulama-6
1 ve 2. noktann X ve Y koordinatlarnn girilmesinden sonra, (1-2)
aklklk asn hesaplayan bir program yaznz.
clear
zm 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
D koul 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
a
%veya output a, aadaki biimde yazdrlabilir.
fprintf('%s%1.5f%s','(1-2) aciklik acisi=',a,' grad')
40
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
zm 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
D koul if (DX<0)&(DY<0),a=a+200;end
if (DX>0)&(DY<0),a=a+400;end
end
Sonular, ayrca sprintf fonksiyonu
if (DX==0)&(DY>0),a=100;end ile bir msgboxa alt alta yazdrnz.
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
ki ifadeyi alt
alta yazdrmak fprintf('%s%1.5f%s','(1-2) aciklik acisi=',a,' grad')
iin fprintf('\n')
fprintf('%s%1.3f%s','(1-2) kenar uzunlugu=',S,' m')
41
MATLAB/Uygulama-9
Kullancy,1i semesi durumunda YT web sayfasina, 2yi semesi durumunda
istediiniz bir web sayfasina ynlendiren bir men program yaznz.
clear
zm 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
end
if a==2
web www.yildiz.edu.tr/~caydin -browser
end
42
MATLAB/for,end dngs
for,end dngs bir ilemin birden daha fazla sayda yaptrlmasnda kullanlr.
(rnein, kk bulma problemlerinde kullanlan iterasyon zmleri). Kullanm,
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
43
MATLAB/while,end dngs
while,end dngs, belirli bir durumun gereklemesi durumunda bir ilemin birden
daha fazla sayda yaptrlmasnda kullanlr.
1. Buradaki, while,end dngs, done deikeni ancak ve
done=0; ancak 0 olduu zaman alacaktr.
while done==0 2. Bir nceki satrda, done deikeni 0 olarak atanm olduu
iin while,end dngs alr.
ilem (while, end dngsn altran farkl algoritmalara burada
end deinilmeyecektir).
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
i, son sayya (Nye) ulatnda, done deikenine 0dan farkl bir say
done=1;
atanr. Bylece, whilen olduu satra gelindiinde, done 0 olmad
end iin while, end dngs almaz (dng sonlanr). Program, bu
say=say+i; dngnn end satrnn hemen altndaki satrdan ileme devam eder
end (burada, say deikeni command windowda yazdrlr.).
say
44
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
45
MATLAB/Grafik
Matlabde grafikler figure penceresinde izdirilir.
Apsis (X) Y
X
46
MATLAB/Grafik
Matlabde en temel izim fonksiyonu plotdur.
47
MATLAB/Grafik
plot(x,y,'-o') ile ilgili grafik aadaki gibi olur.
48
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.)
49
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.
50
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.
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.
51
MATLAB/Grafik-Grafik yoluyla bilgi retme
Bir nceki rnekte kullanlan ya ve yb llerinin birbirleriyle nasl bir ilikide olduunu
grmek iin,
plot(ya,yb,'.')
52
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,'.')
53
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)=x3+x2-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
54
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.
(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=ax4+bx3+cx2+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!
55
MATLAB/Grafik-Basic Fitting Tool
rnek: Aadaki tabloda f= 5, 10, 15 ve 20 deerlerine karlk t-dalmnn =%5 gven
snrlar (t, deerleri) verilmektedir. t=af3+bf2+cf+d polinomunu basic fitting zelliini kullanarak
belirleyiniz. f=9 iin t=2.26 olduuna gre elde edilen enterpolasyon polinomun doruluunu test
ediniz.
f 5 10 15 20
t 2.57 2.23 2.13 2.09
56
MATLAB/Grafik-Basic Fitting Tool
rnek: Aadaki tabloda, x zamanlarna karlk y lleri elde edilmitir. llere en iyi
uyan y=a+bx dorusunu belirleyiniz (En kk kareler kestirim yntemi)
x 0 1 2 3 4 5
y 10.06 9.36 16.69 22.28 25.44 27.75
llerin, belirlenen
doru denkleminden
sapmasn (dzeltmeleri-
residuals) gsterir.
* Demirel H (2005), Dengeleme Hesab
Ders Notlar, YT, stanbul
57
MATLAB/Grafik-ubuk (bar) ve stem grafii
Matlabde farkl gsterimlere gre izim yapmak mmkndr. Bunlardan ikisi bar()
ve stem() izim fonksiyonlardr.
58
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.
Sklk
59
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)
60
MATLAB/Grafik-Kanava izimi
Bir jeodezik dik koordinat sistemindeki x ve y koordinatlar verilen jeodezik noktalar, nokta
sembolleri gen olacak biimde izdiriniz.
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
plot(y,x,'^')
axis([200 1700 200 1500])
axis equal
61
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.
x1=xmin:10:xmax; y1=ymin:10:ymax
62
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.
63
MATLAB/Grafik-Contour Haritas ve 3B izim
64
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;
65
MATLAB/Dosya Yazdrma-Okuma
Daha gelimi dosya yazdrma, fopen, fprintf ve fclose fonksiyonlarnn kullanm ile
gerekletirilir.
fopen, program ktlarnn yazdrlaca dosyay aar, fprintf yazdrr ve fclose ise yazdrma
ilemini sonlandrr.
a=150.0234234;
fid=fopen('kenar.txt','w'); w bu dosyann zerine yazlacan gsterir.
fprintf(fid,'%s%1.4f','kenar uzunlugu=',a); (a mevcut metnin altna yaz demektir)
fclose(fid);
66
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.
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)
67
MATLAB/Dosya Yazdrma-Okuma
P1 1000.1234 1300.23423
P2 1300.5673 1450.98563
P3 2000.1500 2000.11000
P4 3500.3100 1000.12000
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.
68
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.
69
MATLAB/Fonksiyon Dosyas Oluturma
Matlab fonksiyonlar (rnein, inv, disp, num2str,det, textread) kullancnn bir baka
programa gerek duymakszn temel ilemleri kolayca yapabilmesini salar.
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.
70
MATLAB/Fonksiyon Dosyas Oluturma
rnek: Koordinatlar bilinen iki nokta arasndaki yatay uzunluu hesaplayan kenar isimli bir
fonksiyon oluturunuz.
function output=fonk_ismi(input)
71
MATLAB/Fonksiyon Dosyas Oluturma
rnek: Hem aklk asn hem de kenar uzunluunu reten aci_kenar isimli bir fonksiyon
oluturunuz.
72
Matlab Hzl Eriim Klavuzu
1
Matlab Hzl Eriim Klavuzu