Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Hafta 9-10 Matlab Ders Notları M ATLAB ’ de P rogramlama IX-X.

Benzer bir sunumlar


... konulu sunumlar: "Hafta 9-10 Matlab Ders Notları M ATLAB ’ de P rogramlama IX-X."— Sunum transkripti:

1 Hafta 9-10 Matlab Ders Notları M ATLAB ’ de P rogramlama IX-X

2 Hafta 9-10 Matlab Ders Notları M-Fonksiyon Yapısı function cikis_ifadesi1, 2,…, n =fonksiyon_adi (giris_ifadesi1, 2, …n) M-Fonksiyonlar kullanılırken dikkat edilecek hususlar: 1- Kullanıcılar kendi fonksiyonlarını yazmak için m-fonksiyonlarını kullanabilirler. 2- Function alt programı ve ana program şeklinde iki program yazılarak bu iki program ayrı ayrı kaydedilir. 3- Alt programdaki fonksiyon_adı, m-dosyasına verilen isimle aynı olmalıdır. 4- Ana programdan alt program, function adı kullanılarak çağrılır. 5- Alt programdan da ana programa geçiş yapılabilir fakat genelde tercih edileni tersidir. 6- Parametre aktarımı olması durumunda alt ve ana programda eşit sayıda parametre ve giriş değişkeni olmalıdır.

3 Hafta 9-10 Matlab Ders Notları Örnek: İki nokta arasındaki uzaklığı bulan programı m-fonksiyon (alt program) kullanarak yazınız. x1=1.noktanın x koordinati; x2=2.noktanın x koordinati y1=1.noktanın y koordinati; y2=2.noktanın y koordinati function uzaklik = uzak(x1,y1,x2,y2) uzaklik=sqrt((x2-x1).^2+(y2-y1).^2); function cikis_ifadesi1, 2,…, n =fonksiyon_adi (giris_ifadesi1, 2, …n) Bu function alt programı uzak.m olarak kaydedilir. FUNCTION ALT PROGRAMI (uzak.m): ANA PROGRAM: ax=3; ay=4; bx=1; by=2; sonuc = uzak(ax,ay,bx,by); % uzak.m alt programını çağırıyor fprintf(‘iki nokta arasindaki uzaklık=%f’,uzaklik);

4 Hafta 9-10 Matlab Ders Notları  Ana program herhangi bir isimle kaydedilir ve koşturulur.  Program, function adına (uzak) geldiği zaman alt program çağrılır ve ax, ay, bx, by parametreleri sırasıyla x1, y1, x2, y2 giriş değişkenlerine aktarılır.  Function alt programında hesaplama gerçekleştirilir.  Function’daki çıkış değişkeni olan uzaklik alt programda kullaılmakta ana programda aynı değer sonuc değişkeninde saklanır.  Alt programdan ana programa parametre aktarımı zorunlu değildir. İstenirse değişkenlerin değerleri alt programda da girilebilir ve sonuç alt programda yazdırılabilir. Adım adım gerçekleştirilen işlemler:

5 Hafta 9-10 Matlab Ders Notları Uygulama: Yukarıdaki örneği ana programdan alt programa parametre aktarımı yapmadan yeniden yazınız. (Değişkenlerin girilmesi, sonucu hesaplama ve yazdırma işlemi alt programda yapılacaktır) function uzaklik = uzak x1=3; y1=4; x2=1; y2=2; uzaklik=sqrt((x2-x1).^2+(y2-y1).^2); fprintf(‘iki nokta arasindaki uzaklık=%f’, uzaklik); FUNCTION ALT PROGRAMI: ANA PROGRAM: uzak; % uzak.m alt programını çağırıyor

6 Hafta 9-10 Matlab Ders Notları Alt programdan ana programın çağrılması: function sonuc = sonuckiyasla a=input(‘ a =‘) ; b=input(‘ b=‘) ; c=input(‘ c=‘); d=a*b; e=a*c; f=b*c; kiyasla % kiyasla.m ana programını çağırır Örnek: a, b ve c değişkenlerinin alt programda girilmek suretiyle alt programdan ana programın çağrılmasına dair örnek (Sık kullanılmaz) if d>e sonuc=‘d, e den büyüktür’ elseif d>f sonuc=‘d, f den büyüktür’ else sonuc=‘d, en küçüktür’ end Alt program (sonuckiyasla.m) Ana program (kiyasla.m)

7 Hafta 9-10 Matlab Ders Notları ÖDEV: Dışarıdan girilen x ve y değerlerine göre aşağıdaki fonksiyonun değerini hesaplayan bir program yazınız (M-fonksiyonu kullanınız)

8 Hafta 9-10 Matlab Ders Notları DOSYA YÖNETİMİ  Şu ana kadar bir programda hesaplanan veya elde edilen veriler RAM’de saklanacak şekilde tanımlanmıştı. Yani, bilgisayar kapatıldığında veya MATLAB programı sona erdirildiğinde veriler de kaybolmaktaydı.  Oysa pek çok uygulamada elde edilen veriler daha sonra kullanılmak üzere saklanması gerekir. Bunun için verilerin bir dosyaya yazılması gerekmektedir.

9 Hafta 9-10 Matlab Ders Notları MATLAB ’de VERİ GİRİŞ-ÇIKIŞ FONKSİYONLARI Dosya açma: fopen fopen komutu bilgi kaydetmek için veri dosyası açar veya oluşturur. Yazım formatı: İfade = fopen(‘dosya adı’,’izin’) Burada: ifade-> dosya değişkeni dosya adı->verilerin kaydedileceği dosyanın adı izin-> dosyanın kullanım izni : r,w,.., vs.

10 Hafta 9-10 Matlab Ders Notları İzin Tipleri: TiplerAçıklama ‘r’Dosyayı sadece okumaya açar (yazmaya izin vermez) ‘r+’Dosyayı yazmaya ve okumaya açar ‘w’Varolan bir veri dosyasının içindekini siler, dosya yoksa oluşturur ve dosyayı yazmaya açar ‘w+’Varolan bir veri dosyasını yazmak için açar, dosya yoksa oluşturur ve dosyayı okumaya ve yazmaya açar ‘a’Varolan bir veri dosyasını yazmak için açar, dosya yoksa oluşturur ve girilecek bilgileri dosya sonuna ekler ‘a+’Varolan bir veri dosyasını okumak ve yazmak için açar, dosya yoksa oluşturur ve girilecek bilgileri dosya sonuna ekler

11 Hafta 9-10 Matlab Ders Notları Dosya kapama: fclose Dosya yazma ve/veya okumaya açılan dosyanın MATLAB ’den ilişkisini kesmeye (dosyayı kapamaya) yarayan komuttur. Kullanımı: Sonuc=fclose(ifade)

12 Hafta 9-10 Matlab Ders Notları Dosyaya bilgilerin kaydedilmesi: fprintf Verilerin ekrana yazılmasında kullanılan fprintf fonksiyonu, aynı zamanda fopen komutuyla açılmış dosyaya yazmakta da kullanılır. Kullanımı: fprintf (ifade=‘%format%format%format….%format’,değişken1, değişken2,değişken3, …….)

13 Hafta 9-10 Matlab Ders Notları Örnek Aşağıda verilen M dizisini (vektörünü) bir dosyaya kaydeden bir MATLAB programı yazınız M=[ ]; a=fopen('veri.dat','w'); fprintf (a,'%d %d %d %d',M); fclose(a); M=[ ]; a=fopen('veri.dat','w'); for i=1:4 fprintf(a,'%d ',M(i)); end fclose(a); For döngüsü ile:

14 Hafta 9-10 Matlab Ders Notları Örnek Aşağıda verilen matrisi “veri.dat” dosyasına kaydeden bir MATLAB programı yazınız. A=[ ; 2 4 5]; a=fopen('veri.dat','w+'); for i=1:2 for j=1:3 fprintf(a,'%d ',A(i,j)); end fclose(a); veri.dat isimli dosyayı silmeden A dizisini bu sonuna eklemek için hangi ‘izin’ kulanılmalıdır?

15 Hafta 9-10 Matlab Ders Notları Dosyadan bilgilerin okunması: fscanf fscanf: Formatlanmış verileri içeren dosyadan değerleri okuma komutudur ve yazılımı: [değişken, sayi] = fscanf (ifade,’format’,alan) Burada; değişken: okunan değerlerin atandığı değişken sayi: okunan data sayısı alan: inf ile verilerin tamamını okunması sağlanır Örnek Aşağıda verilen vektörü bir dosyadan okuyup b değişkenine atayan MATLAB programı veri.dat clear all clc a=fopen ('veri.dat', 'r ' ); [b,sayi]=fscanf(a,'%d ',inf); fclose(a); b

16 Hafta 9-10 Matlab Ders Notları uygulama Dışardan girilen öğrenci no ve döneme ait aldığı ders isimlerini ve notunu kaydeden bir MATLAB programı yazınız


"Hafta 9-10 Matlab Ders Notları M ATLAB ’ de P rogramlama IX-X." indir ppt

Benzer bir sunumlar


Google Reklamları