name of presentation - hitit...
TRANSCRIPT
Sunum Planı
fprintf komutu
Clc, clear ve help komutları
Koşullu ve Döngü ifadeleri
Matlab’da Fonksiyonlar
Sorular
Ekran Çıkış İşlemleri (Formatlı)fprintf: çıkışı formatlı (biçimlendirilmiş) yaptırmak için kullanılır.
fprintf(‘ekrana basılacak açıklama ve format \n’, değer (veri ya da değişken))
Örnek;
>>fprintf(‘\npi sayisi = %5.2f \n ‘, pi) Önce bir satır atlar
---
pi sayisi = 3.14 (yazdırılacak değer için toplam 5 hanelik yer ayırır, noktadan
sonra 2 hane yazar)
Karakter Tanımı
\n new line (yeni satır)
\t tab (sekme)
\b backspace
Format Belirteci
Tanımı
%e Bilimsel (üstel) gösterir
%d, %g Tamsayı değeri basar.
%f (floating) Reel sayı, aksi belirtilmedikçe virgülden sonra 6 basamak gösterir
%c Tekil karakter
%s Karakter Katarı
Ekran Çıkış İşlemleri (Formatlı)
fprintf Kullanımına Örnekler
>> fprintf('Tanımlanan Karakter = %c \n',karakter);
Tanımlanan Karakter = a
>> fprintf('Tanımlanan Karakter Dizisi = %s \n‘, isim);
Tanımlanan Karakter Dizisi = mustafa
>> fprintf('Tanımlanan Tamsayı = %d \n', tamsayi);
Tanımlanan Tamsayı = 25
>> fprintf('Tanımlanan Ondalıklı Sayı = %f \n', ondaliklisayi);
Tanımlanan Ondalıklı Sayı = 3.141593
>> fprintf('Tamsayı = %d ve Ondalıklı Sayı = %f \n', tamsayi,ondaliklisayi);
Tamsayı = 25 ve Ondalıklı Sayı = 3.141593
karakter=‘a';
isim='mustafa';
tamsayi=25;
ondaliklisayi=pi;
>> disp('Uzgunum! Sifira Bolum Hatasi Var.');
Uzgunum! Sifira Bolum Hatasi Var.
>>fprintf('Uzgunum! Sifira Bolum Hatasi Var.\n');
Uzgunum! Sifira Bolum Hatasi Var.
Aşağıdaki 2 Komut Aynı İşi Yapar
disp ve fprintf Arasındaki Farklar
disp komutu ekrana çıktı verdikten sonra bir alt satıra
otomatik olarak atlar. fprintf komutunu bir alt satıra
götürebilmek için ise \n kullanılmalıdır.
Ayrıca disp komutu satır veya sütun vektörleri ile matrisleri
ekrana kolayca yazdırabilirken aynı işlemi fprintf ile
yapabilmek daha çok işlem gerektirmektedir.
clc komut penceresini temizler.
clear bütün değişkenleri ve fonksiyonları bellekten
siler. (Bütün değişkenleri çalışma alanından
(workspace) çıkarır.)
>>help clc
>>help clear
>>help sqrt
Daha detaylı yardım için (komutun kullanımına ait örnekleri de görmekiçin) doc komutundan faydalanabilirsiniz.
>>doc sqrt
4. Matlab’ da clc, clear ve help Komutları
help komutlar ile ilgili yardım penceresini açar.
>>help clc
clc - Clear Command Window
This MATLAB function clears all input and output from the Command Window
display, giving you a clean screen.
clc
Reference page for clc
See also clear, clf, close, home
>>doc clc
While
IF
Switch
For
6. Matlab’ da Koşul ve Döngü İfadeleri
IF ‘in Üç şekli vardır
IF Şart1. işlem2. işlem3. işlem
:END
Bir mantıksal ifadeyi kontrol ederek bunun sonucuna
göre mümkün seçeneklerden birini icra edebilen bir
komuttur.
if koşul deyimi
IF Şart1.işlem;
ELSE2. işlem
END
IF Şart…ELSEIF … …ELSE …END
Uygulama-1:
1 den klavyeden girilen herhangi bir sayı ya kadar tümsayıların toplamını ve çarpımını hesaplayan bir programyazınız.
Uygulama-2:Dışarıdan girilen x değerlerine göre aşağıdaki fonksiyonun değerinihesaplayan bir program yazınız.
4
10
2
x
5x3xtan(x)
)x(log
1)xln(xxF(x)
5432 xxxxxF(x)
1 < = x < 10 ise
10 < = x ise
Girilen iki sayının oranını bulan ve payda sıfır girildiğinde ekrana “üzgünüm sıfıra bölüm hatası var” mesajı yazdıran program
payda
payoran
Uygulama-3:
pay = input('payı giriniz: ');
payda = input('paydayı giriniz: ');
if payda~=0
oran = pay/payda;
disp(oran);
Else
disp('üzgünüm sıfıra bölüm hatası var');
end
Klavyeden girilen ay numarasına göre o ayın gün sayısını söyleyen birprogram
Uygulama-4:
clear
ay=input('Kaçıncı ayın gün sayısını öğrenmek ist(1-12)= ');
if ay==1 | ay==3 | ay ==5 | ay==7 | ay==8 | ay==10 | ay==12
disp(‘ Bu Ay 31 günden oluşur‘ );
elseif ay==2
disp(' Bu Ay 28 günden oluşur ');
else
disp(' Bu Ay 30 günden oluşur ');
end
Not:Şart Harfli Not
--------- ------------
Ortalama >= 90 AA
75 <= Ortalama < 90 BB
60 <= Ortalama < 75 CC
45 <= Ortalama < 60 DD
Diğer FF
Dışardan girilen bir derse ait quiz, vize ve final notlarını alıportalamasını hesaplayan geçme/kalma durumunu ve harfli sisteme göreharf notunu bulan bir program yazınız.
Uygulama-5:
Switch Koşullu ifadesi
Switch (değişken veya işlem sonucu)
case (durum1)
işlemler
case (durum2)
işlemler
.
.
otherwise ►isteğe bağlı
end
Herhangi bir değişkenin ya da işlem sonucunun bir koşula
bağlı olarak farklı durumları ifade etmek için kullanılan yapıdır.
sayi=input(‘1 ile 10 arasında bir sayı giriniz:’);
switch (sayi)
case {1,3,5,7,9}
disp(‘Bu sayı Tektir’);
case {2,4,6,8,10}
disp(‘Bu sayı Çifttir’);
otherwise
disp(‘Girilen Sayı 1 ile 10 arasının değildir’);
end
1 ile 10 arasında girilen sayıların tek ya da çift olduğunu ekrana yazdıran programı yazınız
Uygulama-6:
Girilen ay numarasına göre, o ayın gün sayısını veren programı switch komutu kullanarak yazınız.
ay = input('bir ay numarası giriniz (1-12)=');
switch ay
case {1,3,5,7,8,10,12};
disp('Bu Ay 31 günden oluşur')
case {2}
disp('Bu Ay 28 günden oluşur')
case {4,6,8,9,11};
disp('Bu Ay 30 günden oluşur')
end
Uygulama-7:
Not:Şart Harfli Not
--------- ------------
Ortalama >= 90 AA
75 <= Ortalama < 90 BB
60 <= Ortalama < 75 CC
45 <= Ortalama < 60 DD
Ortalama < 45 FF
Dışardan girilen bir derse ait quiz, vize ve final notlarını alıportalamasını hesaplayan geçme/kalma durumunu ve harfli sisteme göreharf notunu switch komutuyla bulan bir program yazınız.
Uygulama-8:
FOR DÖNGÜSÜ
Uygulamalarda belirli işlemlerin tekrar tekrar gerçekleştirilmesi
gerektiğinde kullanılan yapılara ÇEVRİM, DÖNGÜ veya LOOP denir. Bu
yapılardan en önemlisi for yapılarıdır.
Döngüler, programdaki işlem sayısını önceden belirleyerek ve bu
sayıya ulaşıp ulaşmadığını her çevrimde denetleyerek işlemi
tekrarlarlar.
for döngü değişkeni = başlangıç : bitiş
işlemler
end
for döngüsünün genel yapısı
toplam = 0 ;
for x = 1:20
toplam = toplam + x ;
end
disp (toplam)
Örnek: 1’den 20’ye kadar sayıların toplamını bulan program
Bir sonraki adım
sayi=input(‘lütfen bir sayı giriniz = ‘);
toplam=0 ;
carpim=1 ;
for i=1:sayi
toplam=toplam+i ;
carpim=carpim*i ;
end
toplam
carpim
1 ile girilen herhangi bir sayı arasındaki sayıların toplamını ve çarpımını hesaplayan bir program yazınız.
Uygulama-9:
Uygulama-10:
For döngüsü testi başlıyor
For döngüsü testi. i = 4
For döngüsü testi. i = 3
For döngüsü testi. i = 2
For döngüsü testi. i = 1
Döngünün sonu.
fprintf('For döngüsü testi başlıyor\n');
for i = 4:-1:1
fprintf('For döngüsü testi. i = %g\n', i);
end
fprintf('\n Döngünün sonu.\n');
İçiçe FOR döngüleri
Carpim = 1;
for i = 1:5
Toplam = 0;
for j = 1:5
Toplam = Toplam + j;
end
Carpim = Carpim * i;
end
disp(['Toplama işleminin sonucu='num2str(Toplam)'dır']);
disp(['Çarpma işleminin sonucu='num2str(Carpim)' dır']);
While Döngüsü
Önceden belirlenmiş belli bir durum gerçekleşinceye kadar
gereken sayıda tekrar edilen ifadeleri içerir.
Genel Kullanımı:
While durum
ifade_1
ifade_2
…
ifade_n
end
Örnek:
Ekrana adınızı ve soyadınızı 10 kez yazan bir programı FOR ve WHILE döngüsü kullanarak yazınız
Uygulama-11:
a=0
while a<10
a=a+1;
disp('Mustafa Coşar');
end
a=5
while a<10
a=a+1;
disp(a);
end
for i=1:10
disp('Mustafa Coşar');
end
Break ifadesi
FOR ve WHILE döngülerine ilaveten bir program akışını kontrol edebilmenin diğer
bir yolu da break ifadesini kullanmaktır. Break ifadesini döngü gövdesi içerisinde
kullanmak, döngünün durmasını ve döngüden sonra gelen ilk ifade veya komutun
işletilmesini sağlar.
Örnek: for j=2:6
disp(j);
if j==4
break
end
end
fprintf('j= %g \n', j);
disp('döngü sonlandırıldı');
Çarpım tablosunu veren bir programı yazınız
Uygulama-12:
for a=1:10
for b=1:10
carpim=a*b;
fprintf('%d * %d = %d\n', a, b, carpim)
end
end
Continue ifadesi
Genellikle for döngülerinde, program akışı ayrıca continue deyimi ile
kontrol edilebilir. continue deyimi işletildiğinde continue deyiminden
sonraki bütün herşey ihmal edilir ve döngü değişkeni güncellenerek döngü
bir sonraki iterasyona başlar.
for i=1:10
if i==4
continue;
end
fprintf('i=%d\n', i);
end
Fonksiyon: MATLAB sin, abs, sqrt, ve Log gibi çok önemli fonksiyonları
da içine alan çok sayıda elemansal matematik fonksiyon sağlar.
Fonksiyon Sembol Örnek
Sinüs sin() sin sin(pi)
Cosinüs cos() cos cos(pi)
Tanjant tan() tan tan(pi)
Arksinüs arcsin() asin asin(0)
Arkkosinüs arccos() acos acos(0)
Arktanjant arctan() atan atan(1)
Eksponensiyal ex exp exp(2)
Doğal logaritma ln(x) log log(10)
10 tabanlı logaritma log10 log10(10)
Kare kök, x sqrt sqrt(25)
Mutlak değer, |x| abs abs(3)
7. Matlab’ da Hazır Fonksiyonlar
Matlab’da Sayı Yuvarlama Fonksiyonları
Matlab’ da ondalıklı sayıları yuvarlama amacıyla sıklıkla
kullanılan 4 adet hazır fonksiyonu vardır. Bunlar:
1. fix
2. round
3. ceil
4. floor
fix(x)
Kendisine parametre (argüman) olarak aldığı x ondalıklı
sayısını 0 (Sıfır) yönünde karşılaştığı ilk tamsayıya
yuvarlar.
round(x)
Kendisine parametre (argüman) olarak aldığı x ondalıklı
sayısını kendisine en yakın tamsayıya yuvarlar.
ceil(x)
Kendisine parametre (argüman) olarak aldığı x ondalıklı
sayısını pozitif sonsuz yönünde karşılaştığı ilk tamsayıya
yuvarlar.
floor(x)
Kendisine parametre (argüman) olarak aldığı x ondalıklı
sayısını negatif sonsuz yönünde karşılaştığı ilk
tamsayıya yuvarlar.
Bir sayının Tamsayı mı Ondalıklı mı olup olmadığının
bulunması
Bir sayı tamsayı ise sayı ve onun yuvarlanmışı eşittir.
Bir sayı yuvarlanmışına eşit değilse ondalıklı bir sayıdır.
round(x)
mod Fonksiyonu ile Kalan Bulma
mod(x,y) x sayısının y sayısına bölümünden kalanı verir.
x=y*bölüm+kalan
x=y*fix(x/y)+mod(x,y)
Bir sayının Tekmi-Çiftmi olduğunu bulma işlemi
Bir sayı ikiye tam olarak bölünebiliyorsa yani sayının ikiye
bölümünden kalan sıfırsa bu sayı çift sayıdır.
Bir sayının ikiye bölümünden kalan 1 ise bu sayı tek
sayıdır.
rand Fonksiyonu ile Rastgele Sayı Üretimi
rand(n,m) fonksiyonu MATLAB’de nxm boyutunda ve elemanlarırastgele sayılar olan bir matris oluşturur. Oluşturulan bu rastgelesayılar 0 ile 1 arasındadır ve düzgün dağılımlıdır.
Üretilmek istenen matris kare bir matris ise yani n satır sayısı, msütun sayısına eşit ise rand(n,n) yerine sadece rand(n)kullanılabilir.
0 ile 1 arasında rastgele ondalıklı bir skaler sayı üretmek için iserand(1) fonksiyonunun kullanımı yeterlidir.
Rastgele sayılardan oluşan bu matrisin tüm elemanlarını k gibibir sayı ile çarparak sayıları 0 ile k aralığına çekebiliriz.
Ondalıklı sayılardan oluşmuş bir matrisin elemanlarını yuvarlayıptamsayı yapmak için herhangi bir yuvarlama fonksiyonunu,mesela round fonksiyonunu kullanabiliriz.
Aşağıdaki işlemleri komut satırında deneyelim
>> 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))
Uygulama-13:
Bilgisayar Mühendisliği
e-posta: [email protected]
Kaynaklar
1. http://slideplayer.biz.tr/slide/2001952/
2. İnan A., MATLAB Temel Seviye Semineri
3. Küçük B., http://www.duzce.edu.tr/~bayramkucuk/dosyalar/003.pdf