You are on page 1of 20

MF-102

Bilgisayar Programlama Bahar 2011 (3. Hafta)


(Yrd. Do. Dr. Deniz Dal)

MATLABDE DZLER
Dizi (array), en genel tanmyla birbirleri ile ilikili nmerik veya metinsel deerler topluluudur. Deikenler ierisinde yalnz bir tek bilgi depolarken dizileri kullanarak ayn trden birden fazla bilgiyi saklayabiliriz. Programmz ierisinde kullanacamz 100 adet tamsayy 100 farkl deiken iinde saklamak yerine bu amala iinde 100 tamsay sakl bir dizi kullanmak daha mantkldr. Dizi elemanlarna ulamak iin indis veya indeks dediimiz yaplardan ve parantezlerden faydalanrz.

MATLABDE DZLER (devam)


Bir nmerik dizi vektr veya matris olabilir. nx1 veya 1xm dizisi bir vektr gsterir. Bu erevede nx1dizisi stun vektr ve 1xm dizisi ise satr vektr olarak da dnlebilir. mxn veya nxm dizisi bir matris gsterir. Bir dizinin eleman says dizinin satr says ile stun saysnn arpmdr.

MATLABDE DZLER (devam)


1 2 A= 3 4 5 6 B=[1 2 3 4] 6 C= 3 5 A(2,2) 4
Satr indisi Stun indisi

boyut=3x2 6 eleman, matris boyut=1x4 4 eleman, satr vektr boyut=3x1 3 eleman, stun vektr

B(3) 3

C(1) 6

VEKTRLER
1xn veya mx1 eklinde tek boyutlu dizi olan vektrleri oluturmann iki temel yolu vardr:
i) Direkt olarak ( [] ile) Satr vektrleri: >> f = [f1 f2 f3 ... fn] veya >> f = [f1,f2,f3, ...,fn] Stun vektrleri: >> f = [f1; f2; f3; ...; fn]
ii) Eit aralkl elemanlar kullanarak (: ile)
f = ilkDeer : artmMiktar : sonDeer

Artm miktar belirtilmezse ilkDeerden sonra 1er artm olaca anlalr. RNEK : a=1:5:25 veya b=1:10

MATRSLER
F11 F12 .... F1n F F F .... 21 22 2n F ... . . ... ... . ... . F F m 1 m 2 . Fm n mxn

Matrisleri oluturmann en temel yolu [] kullanmaktr. mxn boyutundaki bir matrisin genel format:
F = [F11 F12 ... F1n ; F21 F22 ... F2n ; ..... ; Fm1 Fm2 ... Fmn] veya F = [F11,F12, ... ,F1n ; F21,F22, ... ,F2n ; ..... ; Fm1, Fm2, ... , Fmn]

DZ EDTR (ARRAY EDITOR)


alma alannda (workspace) herhangi bir deikenin zerini ift tklarsanz Microsoft Excel tablosuna benzer bir pencere alr sizin iin. Buna dizi editr denir. Deikeninizin elemanlarn bu pencere yardmyla da modifiye edebilirsiniz.

FONKSYONLAR
Fonksiyonlar da bilgisayar programlardr. Bilgisayarlar yardmyla zlmeye allan problemler fonksiyonlar sayesinde ynetilmesi daha kolay, kk paracklara blnrler. Her fonksiyon:
Kendine zg bir isme sahiptir. Kendine, zerinde ilem yapaca bir argman (parametre) ya da argmanlar (parametreler) alr. GENELLKLE geriye bir deer dndrr. (skaler, vektr ya da matris.) rnek : sqrt(25)

YUVARLAMA ve KALAN BULMA FONKSYONLARI fix(x): Kendisine argman olarak ald x ondalkl
saysn 0 (Sfr) ynnde karlat ilk tamsayya yuvarlar. (fix(3.2)3, fix(-3.8)-3)

round(x): Kendisine argman olarak ald x ondalkl


saysn kendisine en yakn tamsayya yuvarlar.

(round(3.2)3, round(3.5)4, round(-3.8)-4)

mod(x,y): x saysnn y saysna blmnden kalan


verir. (mod(7,3)1, mod(8,4)0)
x=y*blm+kalan x=y*fix(x/y)+mod(x,y)

SORU MATLABde tanml dier yuvarlama fonksiyonlarndan ceil ve floor fonksiyonlarnn nasl altn aratrnz.
>>help ceil >>help floor fix(3.2) 3 round(3.2) 3 ceil(3.2) 4 fix(-3.2) -3 round(-3.2) -3 floor(-3.2) -4

SORULAR SORULAR ......

Soru: Bir saynn ondalkl say olup olmadn nasl tespit edersiniz? Soru: Bir saynn tamsay olup olmadn nasl tespit edersiniz? Soru: Bir saynn ift say olup olmadn olduunu nasl tespit edersiniz? Soru: Bir saynn tek say olup olmadn nasl tespit edersiniz?

SORU MATLABde tanml mod ve fix fonksiyonlarn kullanmadan ve blme ilemi yapmadan nasl kalan bulursunuz?

Hem vektrler hem de matrisler yardmc fonksiyonlar (zeros, ones ve rand) kullanlarak da oluturulabilir: zeros(1,3) veya zeros(3,1) zeros(4,4) veya zeros(4) zeros(3,5) ones(1,3) veya ones(3,1) ones(4,4) veya ones(4) ones(3,5) rand(3,5) rand(4,4) veya rand(4)

MATLABDE DZLER (devam)

MATLABDE RASTGELE SAYI RETM


rand(n,m) fonksiyonu MATLABde nxm boyutunda ve elemanlar rastgele saylar olan bir matris oluturur. Oluturulan bu rastgele saylar 0 ile 1 arasndadr ve dzgn dalmldr. Rastgele saylardan oluan bu matrisin tm elemanlarn k gibi bir say ile arparak saylar 0 ile k aralna ekebiliriz. Ondalkl saylardan olumu bir matrisin elemanlarn yuvarlayp tamsay yapmak iin round fonksiyonunu kullanabiliriz. a=rand(1,10) ?? b=fix(rand(3,5)) ?? c=round(40*rand(5,3)) ?? d= 40*round(rand(5,3)) ?? e=round(10+40*rand(5,3)) ?? f=10+40*round(rand(5,3))?? g=round(50+250*rand(3,4)) ?? h=round(1000*rand(1)) ??

DZLERE UYGULANABLEN BAZI FONKSYONLAR


>>a=[4 67 -14 98 76 -1] %Satir Vektoru >>b=[1 2 3;4 5 6;7 8 9] %Matris length(a) : a vektrnn eleman says sum(a) : a vektrnn elemanlarnn toplam max(a) : a vektrnn maksimum eleman min(a) : a vektrnn minimum eleman size(b) : b matrisinin boyutu (!!! Satr Vektr!!!) size(b,1) : b matrisinin satr says size(b,2) : b matrisinin stun says sum(b) : b matrisinin stun bana eleman toplam (!!! Satr Vektr!!!) sum(sum(b)) : ????????? a(1) : a vektrnn 1. elemannn deeri a(length(a)) : ????????? b(2,3) : b matrisinin 2. satr ve 3. stunundaki elemannn deeri b(2,:) : b matrisinin sadece 2. satr (!!! Satr Vektr!!!) b(:,3) : b matrisinin sadece 3. stunu (!!! Stun Vektr!!!)

DZLERE UYGULANABLEN BAZI FONKSYONLAR


b' : b matrisinin transpozesi yani devrii det(b) : b matrisinin determinant !!!! (Kare matrisler iin)!!!! inv(b) : b matrisinin tersi !!!!(Kare matrisler iin)!!!! diag(b) : b matrisinin ana diagonel (apraz) elemanlar Elemanter ilemler eleman eleman ilem demektir ve . ileci kullanlr: arpma: .* , Blme: ./ , s alma: .^ rnek : Bir matrisin tm elemanlarnn karesini almak iin b^2 yerine b.^2 kullanmalyz.

UYGULAMA
Soru:
MATLABin size fonksiyonunu kullanarak bir a vektrnn (satr veya stun) boyutunu nasl bulursunuz?

Cevap: length(a)

max(size(a))

MATLABDE PROGRAMLAMA
MATLABde programlama en genel olarak iki yolla yaplr: - Komut satrnda (in-line) programlama - m-dosyalaryla (m-files) programlama m-dosyalarnn da iki tr vardr: - Dzyaz (script) m-dosyalar - Fonksiyon (function) m-dosyalar m dosyalar oluturabilmek iin bir metin editrne ihtiya vardr.

M-dosyas (M-File) ile Programlama


Bir senaryo dosyas (script file) zel bir grevi yerine getirmek iin gerekli MATLAB komutlarnn sakland bir metin dosyasdr. Baka bir ifadeyle; bir hesaplamay gerekletirmek iin yazlacak bir ok komut dizisi, komut penceresinden tek tek girmek yerine bir dosyada saklanr ve daha sonra bu dosya altrlarak bu komutlar icra edilir. Bu dosyalarn MATLABin alt dizin (current directory) altnda "dosyaAdi.m" eklinde saklanmalar gerekir.

DOSYA ADLARININ NDE TRKE KARAKTERLER VE BOLUKLAR KULLANILAMAZ.!!!!!!!!


Senaryo dosyalarnn ( M-dosyalarnn ) oluturulmas ve yazlmas iin MATLAB bir metin hazrlaycs (text editor) sunmaktadr. Bu senaryo dosyalar Windowsta Notepad gibi herhangi bir metin hazrlaycsnda da yazlabilirler. MATLAB metin hazrlaycs ya current directory penceresinde bo bir alana sa tklayp New, MFile ile ya da ksaca File mensnden New, M-File ibaresini seerek etkin hale getirilebilir.

rnek
Dardan klavye yoluyla girilen dairenin yarapna gre alann ve evresini hesaplayan bir MATLAB programn alanVeCevreHesapla.m adnda bir Mdosyas iine yaznz ve komut penceresinden alanVeCevreHesapla komutunu yazarak altrnz.

clc; clear; alanVeCevreHesapla .m

%Komut penceresini temizle %Degiskenleri sil

r = input('Dairenin yarapn giriniz = ');

alan=pi*r^2;
cevre=2*pi*r; alan cevre KOMUT PENCERES

Program yazma ilemi bittikten sonra ve program altrmadan nce muhakkak kaydediniz.

>>alanVeCevreHesapla

You might also like