Top Banner
M-Dosyaları Editor: Kodların yazıldığı kısımdır. Uzantısı .m olan dosyalarla çalışır. 1
25

Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Jan 26, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

M-Dosyaları• Editor: Kodların yazıldığı kısımdır. Uzantısı .m

olan dosyalarla çalışır.

1

Page 2: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

M-Dosyasının Kullanımı

• İki çeşit M-dosyası vardır

– Scripts, Düz metin dosyalarıdır. Giriş ve çıkış argümanları içermeyen en basit türden bir M-dosyasıdır. Bu dosyaların yürütülmesinden elde

2

dosyasıdır. Bu dosyaların yürütülmesinden elde edilen sonuçlar da çalışma alanında kalır. Bu dosyalar MATLAB komut ortamında .m soneki kullanmaksızın dosya adını yazarak çalıştırılır.

– Functions, fonksiyon dosyasıdır. Giriş argümanlarına karşılık gelen çözümü çıkış argümanları olarak sonuçlandırır. Fonksiyon dosyaları kendi çalışma alanındaki yerel değişkenleri işletir.

Page 3: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Düz Metin Dosyası olarak M-Dosyası

Düz yazı dosyaları belirli bir düzen sırasına göre işletilecek komutlar serisiolan program dosyalarıdır (aritmetik ortalama, geometrik ortalama gibi)

• Metin dosyanıza isim verirken kullandığınız değişken isminikullanmayınız. Aksi taktirde MATLAB dosyasını açmakta problemyaşarsınız.

• Metin dosyanızı m-file olarak kaydedin (WORK’ directory/folder içinde).Aksi taktirde MATLAB bu dosyayı açmakta problem yaşar.Aksi taktirde MATLAB bu dosyayı açmakta problem yaşar.

• M-file dosyanıza isim verirken, harflerle sayılar arasında boşlukyapmaktan kaçının. Aksi taktirde MATLAB problem yaratır.

Page 4: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Düz Metin Dosyası olarak M-Dosyasıdosya ismi.m olarak dosyayı kaydedin

4

Şayet her bir durumun sonunda “;” varsa o satırdaki işlemin sonucunu göstermez.

Çıkışta görmek istediğiniz program sonucu için Çıkış Değişkenleri bölümü konmuştur. Bunun yerine İşlem kısmında değişkenlerinsonundaki (;) kaldırılarak da program çıkışı gösterilebilir.

Page 5: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Metin Dosyasını Koşturma

Command window penceresinde dosya ismini yazarak dosyayı koşturabilirsiniz. Ya da programın yazıldığı editör penceresi içerisinde F5 tuşuna basarak veyada Run tuşuna basarak koşturabilirsiniz.

Page 6: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLAB’de Fonksiyon Dosyası

• Fonksiyon dosyası da düz metin dosyası gibibir m-dosyası’dır.

• Fonksiyon dosyaları; tıpkı FORTRAN’daki altprogramlar yada PASCAL’daki yordam veyada Cveya C++ dilindeki fonksiyonlar gibidir.veya C++ dilindeki fonksiyonlar gibidir.

• Fonksiyon dosyaları iyi tanımlanmış girdi veçıktı listesine sahip bir fonksiyon tanımlamasatırı ile başlar. Function kelimesininbulunduğu bu satır olmazsa dosya düz metindosyası gibi işlem görür.

Page 7: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLABfunction

Matlab’da function yapısı a şağıdaki gibidir.

function [mean,stdev] = stat (x)

yapı çıktılar (output) function adı

n = length(x);

mean = avg(x,n);

stdev = sqrt(sum((x-avg(x,n)).^2)/n);

girdiler (input)ara işlem

1. çıktı

2. çıktı

function s= hort (a, b, c) Verilen 3 sayının harmoni k ortalamasını hesaplar

Page 8: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

• Function İfade Satırı Dosya ismi

• function [rho, H, F] = motion (x, y, t); motion.m

• function [theta] = angleTH (x, y); angleTH.m

function[çıktı1,çıktı2,...,çıktıN]=fonksiyon_adi(girdi1,girdi2,…,girdiM) şeklinde bir yapı vardır. Girdiler ve çıktılar ilk satırda tanımlanmak zorundadır.

• function [theta] = angleTH (x, y); angleTH.m

• function theta = THETA (x, y, z); THETA.m

• function [] = circle (r); circle.m

• function circle (r) circle.m

Page 9: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLABfunction \ notlar

� Girdi sayısının çıktı sayısına e şit olması gerekmez.

� function kaydedilirken dosya ismini otomatik olarak alır.

� function’da kullanılan girdi ve çıktı değişkenleri ana programdan

� Girdi de ğişkeni bir vektör yada matris olabilir.

� function’da kullanılan girdi ve çıktı değişkenleri ana programdan

bağımsızdır. Böylece function’da kullanılan de ğişkenlerin ana

programdaki de ğişkenlerle çakı şması söz konusu olamaz.

� Ancak, function’daki de ğişkenleri aynen dı ş dünyaya yani ana

programa göndermek için GLOBAL komutu kullanılır.

Page 10: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLABfunction \ örnekfunction [kare, kok, toplam] = deneme (a,b)

kare = a^2;

kok = sqrt(b);

toplam = a+b;

deneme adlı bu programa 2 değer vererek test edelim.

Page 11: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLABfunction \ örnek

[a,b]=deneme(3,4)

a=9

b= 2

[b,a]=deneme(3,4)

b=9

a= 2

Şeklinde de çağrılmalar yapılabilir. Burada önemli olan çağrılış sırasıdır.

Köşeli parantezdeki ilk değişken function’da kare alma işlemi, ikinci

değişken kök alma işlemi ve üçüncü değişken ise toplam alma işlemi ile

sıralanmıştır. Bu yüzden function çağrılırken yukarıda görüldüğü gibi

değişkenlerin adının bir önemi olmaz.

2 2

Page 12: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

FUNCTIONS

Fonksiyon dosyaları aynen kodlandığı formatta fonksiyon_adı ile çağrılır. Düz metin programlamada olduğu gibi direkt F5 tuşuna basarak ya da komut satırından direkt dosya basarak ya da komut satırından direkt dosya adını yazarak çalıştıramazsınız.

>>s=hort(3, 5, 7)

s=

4.4366

Page 13: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Sqrt, abs ve sin gibi bazı fonksiyonlar, yerleşik fonkiyonlardır; yani Matlab’in kendi içinde hazır bulunur.

Örneğin “sqrt()” bir girdi değişkeninin Örneğin “sqrt()” bir girdi değişkeninin karekökünü lan bir fonksiyondur.

>> sqrt(4)

ans =

2

Page 14: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

TRĐGONOMETRĐK FONKSĐYONLAR

Matlab’de trigonometrik fonksiyonlarda derece yerine radyan kullanılır. 2π=360 veya π=180derecedir. Örneğin derece cinsinden sin(30)=0.5 tir. MATLAB’da aynı işlemSin(30)=-0.99 bulunur.sin(30*pi/180)

Page 15: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

UYGULAMAUYGULAMA

1. yol

44

Page 16: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

LOGARĐTMĐK ve ÜSTEL FONKSĐYONLAR

Page 17: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Üstel Fonksiyonlar

e’nin x. Kuvvetini hesaplamak için exp(x)ifadesi kullanılır e =2.718.

>> exp(1)ans =

2.7183>> exp(2)>> exp(2)ans =7.3891

Page 18: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Logaritmik Fonksiyonlar1- Matlab’de matematikten bildiğimiz doğal logaritma gösterimi ln olarak değil doğrudan log olarak gösterilmektedir. lnx=logex demektir. x değeri için

Matematikte lnxMatlab’de log(x)

Page 19: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLAB’dax değeri için normal logaritma 10 tabanındadır ve bir x değeri için genel yazımı log10(x) şeklindedir.Doğal logaritma da olduğu gibi negatif sayıların logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur.

NORMAL LOGARĐTMA

logaritmaları reel sayı değildir ve sıfır için değeri sonsuzdur. 0 ile 1 arasındaki (0 ve 1 dahil değil) değerleri negatiftir.

ÖRNEK: log1, log10, log100 ve log 1000, sonra log2, log5, log3/5 ve sonra da log0 ve log(-4) değerlerini bulalım.

Page 20: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

YUVARLATMA ĐŞLEMLERĐ

fix: Sıfıra doğru yuvarlatma yaparfloor: -∞ ‘a doğru en yakın tamsayıya yuvarlatma yapar

ceil: +∞ ‘a doğru en yakın tamsayıya yuvarlatma yaparyapar

round: En yakın tamsayıya yuvarlatma yapar

Page 21: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

round, floor, ceil

Örnekmath:round(45.50) =46 math:floor(45.60) =45 math:ceil(45.20) =46 math:round(-4.5) =-4 math:floor(-4.6) =-5 math:floor(-4.6) =-5 math:ceil(-4.20) =-4

Page 22: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

MATLAB’in Yardım Desteği

>> helpHELP topics:

matlab\general - General purpose commands.matlab\ops - Operators and special characters.matlab\lang - Programming language constructs.matlab\elmat - Elementary matrices and matrix

manipulation.matlab\elfun - Elementary math functions.matlab\specfun - Specialized math functions.matlab\matfun - Matrix functions - numerical linear

Intro MATLAB

matlab\matfun - Matrix functions - numerical linear algebra.

matlab\datafun - Data analysis and Fourier transforms.matlab\polyfun - Interpolation and polynomials.matlab\funfun - Function functions and ODE solvers.matlab\sparfun - Sparse matrices.matlab\scribe - Annotation and Plot Editing.matlab\graph2d - Two dimensional graphs.matlab\graph3d - Three dimensional graphs.matlab\specgraph - Specialized graphs.matlab\graphics - Handle Graphics.…etc...

Page 23: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

>>help fonksiyonadı

>> help matfun

Matrix functions - numerical linear algebra.

Matrix analysis.

norm - Matrix or vector norm.

normest - Estimate the matrix 2-norm.

rank - Matrix rank.

det - Determinant.

Intro MATLAB

det - Determinant.

trace - Sum of diagonal elements.

null - Null space.

orth - Orthogonalization.

rref - Reduced row echelon form.

subspace - Angle between two subspaces.

Page 24: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Command-Line Help�: Function Help

>> help detDET Determinant.

DET(X) is the determinant of the square matrix X.

Use COND instead of DET to test for matrixsingularity.

See also cond.

Intro MATLAB

Overloaded functions or methods (ones with the samename in other directories)

help laurmat/det.m

Reference page in Help browserdoc det

Page 25: Bilgisayar programlama 3• function circle (r) circle.m. function \ notlar MATLAB Girdi sayısının çıktı sayısına e şit olması gerekmez. function kaydedilirken dosya ismini

Farklı girdi parametreleri için oluşturacağınız bir formülün değerini hesaplayıp tablo ile gösteren bir düz yazı dosyası hazırlayınız.

ÖDEV 3:

�Ödev, 17 Mart 2014 tarihine kadar Arş. Gör. Ufuk KANDİL’e teslim edilmelidir.