MATLAB ile ANALİZ (MIA)

Benzer belgeler
Nargin - Nargout. Bir fonksiyonda giriş parametrelerinin kontrolü Nargin = number of argument input

Fen ve Mühendislik Uygulamalarında MATLAB

MATLAB de Programlama & Dosya Yönetimi. EE-346 Hafta 6 Dr. Ayşe DEMİRHAN

BİLGİSAYAR PROGRAMLAMA Araş. Gör. Ahmet ARDAHANLI. Kafkas Üniversitesi Mühendislik Fakültesi

Bilgisayar Programlama MATLAB

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

GÖRÜNTÜ İŞLEME MATLAB DERS-4

BİLGİSAYAR UYGULAMALARI Şırnak Üniversitesi Mühendislik Fakültesi Güz Dönemi Arş.Gör. Eren DEMİR ve Arş.Gör. Veysel KIŞ (

Eln 1002 Bilgisayar Programlama II

ALGORİTMA VE PROGRAMLAMA II

Matlab da Dizi ve Matrisler. Mustafa Coşar

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-8 Dosya İşlemleri-1. Yrd. Doç. Dr. Ümit ATİLA

Değişken atama Kullanıcıdan veri girişi istendiğinde kullanılır. 1. Bir değişkene değer atama (örn: a=4 gibi) 2. Klavyeden veri girme

VTIY DERS-4 YARDIMCI NOTLARI -2018

Temel Bilgisayar Programlama

Yrd. Doç. Dr. Caner ÖZCAN

MATLAB/Diziler (Karakter Dizileri)

MATLAB ile ANALİZ (MIA)

DOSYA İŞLEMLERİ Programlama dilleri hafta -

BİLGİSAYAR PROGRAMLAMA DERSİ

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

BİLGİSAYAR PROGRAMLAMA DERSİ

Yrd. Doç. Dr. Caner ÖZCAN

k ise bir gerçek sayı olsun. Buna göre aşağıdaki işlemler Matlab da yapılabilir.

C Dosyalama. Öğr. Gör. M. Ozan AKI. Rev 1.0

Temel Bilgisayar Programlama Final Sınavı Çalışma Notları

BMB1002 Bilgisayar Programlamaya Giriş. Dosyalar. Prof. Dr. Necmettin Kaya

MATLAB Semineri. EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü. 30 Nisan / 1 Mayıs 2007

Erzurum Teknik Üniversitesi Mühendislik Mimarlık Fakültesi Bilgisayar Programlama Dersi Final Sınavı Soru Toplam Puanlar

GÖRÜNTÜ İŞLEME DERS-3

DENEY 1: Matlab de Temel Uygulamalar

Metin Dosyaları. Metin Dosyaları Dosya Açma ve Kapama Dosya Okuma ve Yazma Rastgele Erişim Standart Girdi/Çıktı Hata Kontrolü

Örnek 4: Örnek Özyinelemeli fonksiyon örneği Bölüm 9. C++ programlama dilinde Nesne ve sınıf

NĐĞDE ÜNĐVERSĐTESĐ Elektrik Elektronik Mühendisliği Bölümü. Devre Tasarımı Ders Notları MATLAB. Arş. Gör. Salim ÇINAR. salim çınar

ALGORİTMALAR VE PROGRAMLAMA

MATLAB/Değişkene Değer Atamak

MATLAB a GİRİŞ. Doç. Dr. Mehmet İTİK. Karadeniz Teknik Üniversitesi Makine Mühendisliği Bölümü

Matlab. Vektör ve Matris İşlemleri

Bilgisayar Programlama

Telefon Rehberi Uygulaması

mod ile açılacak olan dosyanın ne amaçla açılacağı belirlenir. Bunlar:

C/C++ Disk G/Ç İşlemleri. Yrd. Doç. Dr. Fehim KÖYLÜ Erciyes Üniversitesi Bilgisayar Mühendisliği Bölümü

NESNEYE YÖNELİK PROGRAMLAMA

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

ELE /16 BAHAR DÖNEMİ - ÖDEV

Eln 1001 Bilgisayar Programlama I

Fen ve Mühendislik Uygulamaları ile MATLAB

MATLAB Temelleri. EE-346 Hafta 2 Dr. Ayşe DEMİRHAN

5. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ.

ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8

şeklinde tanımlanmıştır. O halde, dosyaları daha önceki bilgilerimizi kullanarak FILE *Dosya1, *Dosya2;

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

BİLGİSAYAR PROGRAMLAMA DERSİ

ALGORİTMA VE PROGRAMLAMA II

İnternet Programcılığı Dersi 2.Dönem Ders Notu

GÖRÜNTÜ İŞLEME MATLAB DERS-3

PROGRAMLAMAYA GİRİŞ DERS 2

AKT 305 Aktüeryal Yazılımlar Ödev 1 Yanıtları Soru 1. Create a vector x with the elements...

disp VEYA fprintf KOMUTLARIYLA EKRANA MESAJ YAZDIRMA

String Sınıfını Yönetmek

Fen ve Mühendislik Uygulamaları ile MATLAB

MATLAB Temelleri. EEM104 - Bilgisayar Programlama. Matlab ın Açılış Ekranı. Dr. Mehmet Siraç Özerdem EEM Dicle Üniversitesi. Launch Pad.

AKÜ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ

Bilgisayar Programlama MATLAB

Regular Expressions Version 0.1

Görsel Programlama 1

Java String İşlemleri

BİL 810 İnşaat Mühendisliğinde Bilgisayar Uygulamaları

Diziler. Yrd.Doç.Dr.Bülent ÇOBANOĞLU

Temel Dosya İşlemleri. Kütük Organizasyonu 1

BİLGİSAYAR PROGRAMLAMAYA GİRİŞ

C Konsol Giriş Çıkış Fonksiyonları

Visual Basic 6.0. Anadolu Üniversitesi Endüstri Mühendisliği Bölümü. Dosyalama İşlemleri. Ders Notları

D İ Z İ L E R A R R A Y S

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Pythonda değişkenlerin türlerini tanımlamaya gerek yoktur

BİL1001 Bilgisayar Bilimlerine Giriş 1

GÖRÜNTÜ İŞLEME DERS-2

Mantıksal Kontrol ve Döngü Komutları

BİL-142 Bilgisayar Programlama II

pfrintf fonksiyonu: Çıkışın formatlı olması ve bunun bir dosyaya yazdırılması durumlarında kullanılır. fprintf fonksiyonunun genel yazım biçimi,

-A Grubu- MKT103 Görsel Programlama 2015/2016 Güz Dönemi Final Sınavı

ALGORİTMA VE PROGRAMLAMA I

MatLab. Mustafa Coşar

İnternet Programcılığı Öğr. Gör. Serkan AKSU PHP de Dizi-Değişkenler, Nesneler. Dizi Oluşturma. Tek Boyutlu Diziler

OMÜ HAVACILIK VE UZAY BİLİMLERİ FAKÜLTESİ METEOROLOJİ MÜHENDİSLİĞİ BÖLÜMÜ MET103 BİLGİSAYAR PROGRAMLAMA I BÜTÜNLEME SINAVI

Dersin Sorumlusu: Yrd. Doç. Dr. Birol SOYSAL. Sunumları Hazırlayan: Doç. Dr. Bülent ÇAKMAK

Yrd. Doç. Dr. A. Burak İNNER

Bilgisayar Programlama MATLAB

Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

Genel Programlama II

MatLab. Mustafa Coşar

Diziler İndisli Değişkenler

ALFASAYISAL BİLGİLER KARAKTER DİZİLERİ (STRING)

ELN1002 BİLGİSAYAR PROGRAMLAMA 2

MATLAB Kullanımı. [ sqrt(-6)] a = [ ; ; 1 sqrt(-6)] a=[] clear a. a=[ 3, , 9, 10 ] a= [a ] a=[ 1 2 a ]

BM202 SAYISAL ÇÖZÜMLEME

ALGORİTMA VE PROGRAMLAMA I

Transkript:

MATLAB ile ANALİZ (MIA) DERS-7

FONKSİYONLAR (nargin - nargout) Nargin - Nargout Bir fonksiyonda giriş parametrelerinin kontrolü Nargin = number of argument input function q = targ( a,b,c ) %UNTÝTLED Summary of this function goes here % Detailed explanation goes here if (nargin==1) q=a.^2; elseif (nargin==2) q=a.^2+b.^2; elseif (nargin==3) q=a.^2+b.^2+c.^2; end end 2

FONKSİYONLAR (nargin - nargout) Nargin - Nargout Kullanıcıları giriş parametrelerini tam girmeye zorlamak function q = targ2( a,b,c ) %UNTÝTLED Summary of this function goes here % Detailed explanation goes here if (nargin<3) disp('en az üç parametre girilmelidir.'); elseif (nargin==3) q=a.^2+b.^2+c.^2; end end 3

FONKSİYONLAR (nargin - nargout) Nargin - Nargout Bir fonksiyonda çıkış parametrelerinin kontrolü, nargout function [elemansay, art_o,geo_o]=ortalamalar(x) if nargout==1 elemansay=length(x); elseif nargout==2 elemansay=length(x); art_o=mean(x); elseif nargout==3 elemansay=length(x); art_o=mean(x); geo_o=geomean(x); end 4

FONKSİYONLAR (handle) FONKSİYONLAR Bir dosyanın içine birden çok fonksiyon yazarak fonksiyon tutamaçlarını (handle) döndürme işlemi. function f = fonksiyonlar() f.f1 = @fonksiyon1; f.f2 = @fonksiyon2; end function y = fonksiyon1(x) y = x^2; end Fonksiyonları aşağıdaki şekilde çağırabiliriz. >> f.f1(2) 4 >> f.f2() 5 function z = fonksiyon2() z = 5; end 5

find() fonksiyonu FIND KOMUTU find(x) = Bir matris ya da dizide x ifadesinin True yani 1 olduğu elemanların indeksini verir. >> x = [-8 0-1 3 4.5]; find(x) 1 3 4 5 Ayrıca find komutu içinde verilen koşulu sağlayan elemanların indekslerini de verir. >> find(x>1) 4 5 6

find() fonksiyonu FIND KOMUTU >> X = [1 0 2; 0 1 1; 0 0 4] X = 1 0 2 0 1 1 0 0 4 >> k=find(x) k = 1 5 7 8 9 >> k2 = find(~x) k2 = 2 3 4 6 >> X(k2) 0 0 0 0 7

find() fonksiyonu FIND KOMUTU >> r=rastgele12(-20,20,5,5) r = 13-16 -14-14 6 16-9 19-3 -19-15 2 18 17 14 17 18-1 12 17 5 19 12 18 7 >> r(1:3:25)=0 r = 0-16 -14 0 6 16 0 19-3 0-15 2 0 17 14 0 18-1 0 17 5 0 12 18 0 >> find(r,2) 2 3 >> find(r,2,'last') 23 24 8

find() fonksiyonu FIND KOMUTU r = 0-16 -14 0 6 16 0 19-3 0-15 2 0 17 14 0 18-1 0 17 5 0 12 18 0 >> k=find(r<0 & r>-15) k = 11 14 17 >> [satir,sutun]=find(r<0 & r>-15) satir = 1 4 2 sutun = 3 3 4 9

find() fonksiyonu FIND KOMUTU Fonksiyonunun x=-5:0.0001:5 aralığındakli köklerini find komutu ile bulunuz. x=-5:0.0001:5; >> y=x.^3-4.2*x.^2+3.3.*x -4; kokindis=find(y>=-0.001 & y<=0.001) kokindis = 85913 85914 >> y(kokindis) 1.0e-03 * -0.5616 0.6209 >> x(kokindis) 3.5912 3.5913 10

reshape() fonksiyonu RESHAPE KOMUTU Matlab da A(mxn) boyutunda bir matris m*n = p*q olmak şartıyla B(pxq) boyutunda bir matrise dönüştürülebilir. Örnek: A matrisi (2 3) boyutlarındadır. A matrisini (3X2) boyutuna getiriniz. A = [10 8 6 ; 1 3 5]; >> B=reshape(A,3,2) B = 10 3 1 6 8 5 11

reshape() fonksiyonu RESHAPE KOMUTU >> r=rastgele12(-20,20,1,20) r = Columns 1 through 12 10 10-4 6-13 8-19 -9-18 -16 13 8-7 18-19 -2-5 11 12-13 >> r1=reshape(r,5,4) r1 = 10 8 13-2 10-19 8-5 -4-9 -7 11 6-18 18 12-13 -16-19 -13 12

reshape() fonksiyonu RESHAPE KOMUTU >> r3=reshape(r,[],2) İki sütunlu olsun. Satır sayısı farketmiyor. Yeter ki tam olarak 2 sütun yapılabilsin. r3 = 10 13 10 8-4 -7 6 18-13 -19 8-2 -19-5 -9 11-18 12-16 -13 >> r3=reshape(r,[],3) Error using reshape Product of known dimensions, 3, not divisible into total number of elements, 20. 13

eval() feval() fonksiyonları FONKSİYON FONKSİYONLARI Girdi olarak fonksiyon kabul eden fonksiyonlardır. Bazıları: Fplot, feval, fzero, fminsearch vs. Fplot fonksiyonuna grafikler konusunda bakılacak. eval ve feval fonksiyonları: Eval(): Bir karakter dizisini işleme koyar. Sanki komut satırından komut satırından bir komut giriyormuşuz gibi işlem yapar. >> x=eval('cosd(45)') x = 0.7071 >> eval( x=1 );. 14

eval() feval() fonksiyonları FONKSİYON FONKSİYONLARI >>eval('1+1') >>eval('x=1+1') Feval() ise bir karakter dizisi yerine bir fonksiyona işlem yapar >> x=feval('cosd',135) x = -0.7071 15

eval() feval() fonksiyonları FONKSİYON FONKSİYONLARI >>fzero('cosd', [0 180]) 90 Örnek: Fonksiyonunun kökünü bulunuz. >> fzero('x.^3-4.2*x.^2+3.3.*x -4',[-5 5]) 3.5912 >> fzero('x.^3-4.2*x.^2+3.3.*x -4',1) 3.5912

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları MATLAB tüm değişkenleri diziler olarak kabul eder ve string değişkenler karakter dizileri olarak kabul edilir. Değişkeni kontrol etmek için whos komutunu kullanalım >> gir='program' gir = program >> whos gir Name Size Bytes Class Attributes gir 1x7 14 char

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları Oluşturma ve Bitiştirme Fonksiyonları Bul Değiştir Fonksiyonları Birleştirme ve Ayırma Fonksiyonları Düzenleme Fonksiyonları Karşılaştırma Fonksiyonları

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları >> gir='program' gir = program >> x='1886' x = 1886 >> y=[gir,' kodu: ',x] y = program kodu: 1886 >> y(4:9) gram k >> z='ali''nin' z = Ali'nin >> d=double(z) d = 65 108 105 39 110 105 110 >> y=[gir;' kodu: ';x] Error using vertcat >> strvcat(gir,' kodu: ',x) program kodu: 1886 >> strcat(gir,' kodu: ',x) program kodu:1886

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları Oluşturma ve Bitiştirme Fonksiyonları strcat(s1,s2,..sn) stringleri birleştiren fonksiyon. >> s1='aku'; >> s2='teknoloji'; >> s3='fakültesi'; >> strcat(s1,s2,s3) AKUteknolojifakültesi >> str = strcat('dr. ',str) str = 'Dr.John Smith' 'Dr.Mary Jones' >> str1 = {'John ','Mary '}; >> str2 = {'Smith','Jones'}; >> str = strcat(str1,str2) str = 'John Smith' 'Mary Jones'

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları >> A={'resim1.jpg','resim2.jpg','cameraman.jpg','lina.jpg','chessboard.jpg'} A = 'resim1.jpg' 'resim2.jpg' 'cameraman.jpg' 'lina.jpg' 'chessboard.jpg' >> B=strjoin(A,',') B = resim1.jpg,resim2.jpg,cameraman.jpg,lina.jpg,chessboard.jpg >> B=strjoin(A,'-') B = resim1.jpg-resim2.jpg-cameraman.jpg-lina.jpg-chessboard.jpg

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları sprintf() karakter dizisi içindeki bilgileri düzenler. fprintf() den farkı bir değişkene atanabilmesidir. Örnek: A1 = 2; A2 = 3; str = sprintf( Dizinin boyutları: %dx%d,a1,a2) str2=strcat(str,' işlemleri yapınız!') str2 = Dizinin boyutları: 2x3. işlemleri yapınız!

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları Bul Değiştir Fonksiyonları strfind (str,aranan) A=['resim1.jpg, ','resim2.png, ','cameraman.tif, ','lina.jpg, ','chessboard.png'] A = resim1.jpg, resim2.png, cameraman.tif, lina.jpg, chessboard.png >> strfind(a,'png') 20 61 >> findstr(a,'png') 20 61

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları strrep(karakter dizisi, aranan, yerine gelecek olan) >> a='akü Otomotiv Mühendisliği' a = AKÜ Otomotiv Mühendisliği >> b=strrep(a,'otomotiv','mekatronik') b = AKÜ Mekatronik Mühendisliği >A={'resim1.jpg';'resim2.jpg';'cameraman.jpg';'lina.jpg';'chessboard.jpg'} A = 'resim1.jpg' 'resim2.jpg' 'cameraman.jpg' 'lina.jpg' 'chessboard.jpg' >> strrep(a,'jpg','tiff') 'resim1.tiff' 'resim2.tiff' 'cameraman.tiff' 'lina.tiff' 'chessboard.tiff'

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları >> gezi_tarihleri={'başlangıç: '; 'Bitiş: '} gezi_tarihleri = 'Başlangıç: ' 'Bitiş: ' >> tarihler={'11/11/2016';'13/11/2016'} tarihler = '11/11/2016' '13/11/2016 >> tam_tarih=strrep(gezi_tarihleri,' ',tarihler) tam_tarih = 'Başlangıç:11/11/2016' 'Bitiş:13/11/2016'

>> strcmp(a,b) 1 Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları strcmp(karakter dizisi1, karakter dizisi2) Büyük-küçük harf duyarlıdır. strcmpi(karakter dizisi1, karakter dizisi2) Büyük-küçük harf duyarlı değildir. >> a='akü Mekatronik' a = AKÜ Mekatronik >> b='akü mekatronik' b = AKÜ mekatronik >> strcmp(a,b) 0 >> b='akü Mekatronik' b = AKÜ Mekatronik

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları >> a={'akü', 'Mekatronik','Mühendisliği'} a = 'AKÜ' 'Mekatronik' 'Mühendisliği' >> b={'akü', 'mekatronik','mühendisliği'} b = 'AKÜ' 'mekatronik' 'Mühendisliği' >> strcmp(a,b) 1 0 1

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları strsplit(karakter dizisi) strsplit(karakter dizisi, ayırıcı) Karakter dizilerini belirli bir karaktere göre ayırmaya yarar. >> a='akü Mekatronik Mühendisliği' a = AKÜ Mekatronik Mühendisliği >> b=strsplit(a) b = 'AKÜ' 'Mekatronik' 'Mühendisliği' >> a='akü_mekatronik_mühendisliği' a = AKÜ_Mekatronik_Mühendisliği >> b=strsplit(a,'_') b = 'AKÜ' 'Mekatronik' 'Mühendisliği'

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları Karakter Sayı Dönüşümleri str2num() fonksiyonu str2double() fonksiyonu >> b=str2num('144') b = 144 >> b+1 145 >> a=str2num('abc') a = [] >> e='1.66e-2' e = 1.66e-2 >> str2num(e) 0.0166 >> str2double(e) >> c=str2num('144+10') c = 154 0.0166 >> d=str2num('144 +10') d = 144 10

Karakter dizisi fonksiyonları (string fonksiyonlar) Karakter Dizisi Fonksiyonları Say - Karakter Dönüşümleri int2str() fonksiyonu >> b=144 b = 144 >> b=144.33 b = 144.3300 num2str() fonksiyonu >> a=int2str(b) a = 144 >> a=int2str(b) a = 144 >> a=num2str(b) a = 144 >> a=num2str(b) a = 144.33

TXT DOSYA İŞLEMLERİ DOSYA İŞLEMLERİ Ş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 verilerin daha sonra kullanılmak üzere saklanması gerekir. Bunun için bu verilerin bir dosyaya yazılması gerekmektedir. Doç.Dr. Bahattin ERDOĞAN alıntıdır. 31

GRAFİK İŞLEMLERİ DOSYA İŞLEMLERİ 1. İşleyeceğin dosyayı aç. (fopen) 2. Açtığın dosyayı oku ya da açtığın dosyaya yaz. (fscanf, fprintf) 3. Açtığın dosyayı kapat. (fclose) Doç.Dr. Bahattin ERDOĞAN alıntıdır. 32

GRAFİK İŞLEMLERİ DOSYA İŞLEMLERİ MATLAB deki fopen komutu, bilgi kaydetmek veya bilgi okumak için, varolan bir veri dosyasını yazmaya/okumaya açar veya varolmayan bir dosyayı sıfırdan oluşturur. Yazım formatı: dosya_degiskeni = fopen( dosya adı, mod ) Burada: dosya_degiskeni-> Dosya kontrolünde kullanılan MATLAB değişkeni dosya adı-> Verilerin kaydedileceği/okunacağı dosyanın adı mod-> Dosya işleme modu : r,w,.., vs. Doç.Dr. Bahattin ERDOĞAN alıntıdır. 33

GRAFİK İŞLEMLERİ DOSYA İŞLEMLERİ Doç.Dr. Bahattin ERDOĞAN alıntıdır. 34

GRAFİK İŞLEMLERİ DOSYA İŞLEMLERİ Dosya Kapama: fclose Yazma ve/veya okumaya açılan dosyanın MATLAB den ilişkisini kesmeye (dosyayı kapamaya) yarayan komuttur. Kullanımı: fclose(dosya_degiskeni) Doç.Dr. Bahattin ERDOĞAN alıntıdır. 35

GRAFİK İŞLEMLERİ DOSYA İŞLEMLERİ % dosya yazma örneði x=100*rand(30,1); dosyaid=fopen('ornek11.txt','w') ; fprintf(dosyaid,'%2.4f\r\n',x); fclose(dosyaid); %% %dosya okuma örneði dosyaid=fopen('ornek1.txt','r'); A=fscanf(dosyaID,'%f') fclose(dosyaid); %% Doç.Dr. Bahattin ERDOĞAN alıntıdır. 36

GRAFİK İŞLEMLERİ DOSYA İŞLEMLERİ %dosya yazma (iki sutun) x=1:5; y=[x;rand(1,5)]; dosyaid=fopen('ornek25.txt','w'); fprintf(dosyaid,'%d %f\r\n',y); fclose(dosyaid); %% %dosya okuma (iki sutun) dosyaid=fopen('ornek22.txt','r'); B=fscanf(dosyaID,'%d %f ',[2 Inf]) fclose(dosyaid); %% Doç.Dr. Bahattin ERDOĞAN alıntıdır. 37

Karakter Dizisi Fonksiyonları Örnek: Bir grup sensörden veri okunmaktadır. Bu sensörler: potansiyometre, ldr (ışık sensörü) ve lm35 dir. Gelen veriler 0-5V aralığında 3 (+-)1 V değerlerinde 200 elemanlı bir dizi oluşturulacaktır. Bu dizi: POT_3.7196 LDR_2.8871 LM35_1.9977 POT_2.8853 şeklinde olacaktır. «_» karakterinden sonraki veriler sensörlerden okunan voltaj değerleri olup random olarak belirlenecektir. «_» karakteri öncesindeki değerler ise voltaj değerinin okunduğu sensörü belirlemektedir.

Karakter Dizisi Fonksiyonları clear; format bank r1=3*ones(1,200); r2=-1+2*rand(1,200); r=r1+r2; % olcumler=zeros(1,200); for i=1:200 olcumler{i}=strcat('pot_',num2str(r(i))); end %% for k=2:3:200; olcumler{k}=strrep(olcumler{k},'pot','ldr'); end %% for k=3:3:200; olcumler{k}=strrep(olcumler{k},'pot','sck'); end

Karakter Dizisi Fonksiyonları Örnek: Bir önceki örnekte oluşturulan: POT_3.7196 LDR_2.8871 LM35_1.9977 POT_2.8853 Diziden potd, ldrd, sckd isminde 3 ayrı dizi oluşturulacaktır. Başında POT olan elemanların sağ yani sayı kısmı potd dizinine, Başında LDR olan elemanların sağ yani sayı kısmı ldrd dizinine, Başında LM35 olan elemanların sağ yani sayı kısmı sckd dizinine, aktarılacaktır.

Karakter Dizisi Fonksiyonları j=1; for i=1:200 d=strsplit(olcumler{i},'_'); if strcmp(d(1),'pot') potd(j)=str2double(d(2)); j=j+1; end end j=1; for i=1:200 d=strsplit(olcumler{i},'_'); if strcmp(d(1),'ldr') ldrd(j)=str2double(d(2)); j=j+1; end end j=1; for i=1:200 d=strsplit(olcumler{i},'_') ; if strcmp(d(1),'sck') sckd(j)=str2double(d(2)); j=j+1; end end