MATLAB DE DOSYA AÇMA KAPAMA

talhakoc 30 Aralık 2013Matlab

Matlab’in mühendisler açısından bir çok yararlı yönleri vardır ancak matlab’i kullanırken verileri kaydedecek, kaydettiğimiz verileri okuyabilecek fonksiyonlara ihtiyacımız vardır.

fopen fonksiyonu m-file’ın bulunduğu klasörde bir dosya açar. fprintf; açtığımız dosyada girdiğimiz veriyi ekrana basar. fscanf; dosyadaki veriyi okur.  fclose ise bu dosyayı kapatır. fwrite; fprintf’in görevini yapar ama kullanımı biraz farklıdır. Üstelik karakterlerin ascıı tablodaki değerini basar. Ascıı tablo, 0-255 arasındaki sayıların mevcut karakterler olarak karşılığıdır. fread de fwrite gibi ascıı karşılığını basar ancak okuma işini gerçekleştirir. Matlab command window ekranında garip garip işaretler görürsünüz.

Bir dosya açmak için fopen fonksiyonunu kullanarak bir değişkene atamalıyız, çünkü diğer fonksiyonlarda dosyayı o değişkenle kullanacağız. değişken=fopen(‘dosya’,’w+’); komutuyla dosya isimli bir dosya açarak içine istediğimizi ekleyebiliyor, ve içini okuyabiliyoruz. Dosyamızı açtıktan sonra  fprintf(değişken,’istediğini yaz’); komutuyla değişkenimize yani dosyamızın içine tırnak arasındaki ifadeyi bastırırız. Daha sonra fclose(değişken); komutuyla dosyamızı kapatırız. böylelikle m-file’ın bulunduğu klasörde dosya ismiyle bir dosya oluşur. Onu da not defteriyle çalıştırabilirsiniz.

x=fopen(‘dosya.dat’,’w+’);
fprintf(x,’verilerim…’);
fclose(x);

bu komutlarla ‘verilerim’ yazısını not dat formatında (not defteri) kaydeder. Bunu dosya.txt olarak da kaydedebilirsiniz. Dosyaları kaydettiğiniz klasöre bakarsanız kaydettiğiniz dat veya txt dosyasını orada göreceksiniz. Ona çift tıkladığınızda dosyaya ulaşabilirsiniz. fopen fonksiyonundaki w+ varsa mevcut dosyayı sıfırlar ve o isimde bir dosya yoksa yeni dosya açar.

Untitled

u=fopen(‘dosya.dat’,’r’);
[t,sayi]=fscanf(u,’%c ‘,inf);
fclose(u);
t

bu komutlarla da dosya.dat dosyasını açarak orada yazılan komutların tamamı carakter olarak okunur ve t değişkenine atılır. Burada sayi dosyada kaç karakter olduğunu gösterir. inf ise dosyanın tamamını oku anlamındadır. En son t de matlab ekranında görünmesi için konmuştur. fopen fonksiyonundaki r ise dosyanın sadece okunabilmesine izin vermektedir.

‘w’,’w+’,’r’ gibi izinlerin işlevleri:

Tipler
Açı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

Dosya açma kapama ile ilgili bir program yazalım:

clc
N=input(‘ogrenci sayisi giriniz:’);

x=fopen(‘sinifnotlari.txt’,’wt’);
fprintf(x,’2011 2012 yili matematik sinav notlari\n’);
fprintf(x,’ogr no\tisim soyisim\t1.vize\t2.vize\tfinal\tortalama\n’);
viz1=0; viz2=0; final=0; top=0;
for i=1:1:N
fprintf(‘%d. ogrencinin:\n’,i)
adi=input(‘isim soyisimi:’,’s’);
ogrno=input(‘ nosunu giriniz:’);
not1(i)=input(‘1. vize notunu giriniz:’);
not2(i)=input(‘2. vize notunu giriniz:’);
not3(i)=input(‘final notunu giriniz:’);
ortalama(i)=not1(i)*3/10+not2(i)*3/10+not3(i)*4/10;
fprintf(x,’%d\t’,ogrno);
fwrite(x,adi,’char’);
fprintf(x,’\t     %6d ‘,not1(i));
fprintf(x,’\t%d ‘,not2(i));
fprintf(x,’\t%d ‘,not3(i));
fprintf(x,’\t%f\n’,ortalama(i));
viz1=viz1+not1(i);
viz2=viz2+not2(i);
final=final+not3(i);
top=top+ortalama(i);
end
gort=top/N;
ortv1=viz1/N; ortv2=viz2/N; ortf=final/N;
fprintf(x,’sinif 1.vize ortalamasi:%f dir\n’,ortv1);
fprintf(x,’sinif 2.vize ortalamasi:%f dir\n’,ortv2);
fprintf(x,’sinif final ortalamasi:%f dir\n’,ortf);
fprintf(x,’sinif genel ortalamasi:%f dir\n’,gort);
fclose(x);

Untitled

One thought on “MATLAB DE DOSYA AÇMA KAPAMA

  1. hocam pysionetteki dat veya edf dosyalarını nasıl açabiliriz.İndiriyorum fakat şaçma sayı ve harfler çıkıyor excell de matlabda çözülebildiği söylendi ama yardım ederseniz sevinirim

kutay için bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Arama

Twitterda

© 2014 - Talha Koç. All Rights Reserved. Powered by Wordpress and Design by We Create Web Designs