Upload
others
View
13
Download
0
Embed Size (px)
Citation preview
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.
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.
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.
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.
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.
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
• 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
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.
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.
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
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
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
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)
Ü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
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)
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.
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
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
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...
>>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.
…
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