Değişken atama Kullanıcıdan veri girişi istendiğinde ... · Bu komutun aktif olduğu...
-
Upload
vuongkhanh -
Category
Documents
-
view
226 -
download
0
Transcript of Değişken atama Kullanıcıdan veri girişi istendiğinde ... · Bu komutun aktif olduğu...
�Değişken atamaKullanı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 girme3. Bilgisayar belleğinde saklanan verileri bir 3. Bilgisayar belleğinde saklanan verileri bir
dosyadan okumak
" input " komutu yardımıyla bir MATLABprogramı içerisinde de ğerlendirilmek üzerekullanıcıdan klavye yoluyla bir veri alınır ve buveri bir de ğişkene atanır. 4 farklı şekildeyapılabilir.
2. Klavyeden veri girme
I. InputII. Klavyeden girmeII. Klavyeden girmeIII. Menu fonksiyonuIV.pause komutu
I. InputEğer klavyeden değer girilmek istenirse input komutu
kullanılır. En genel hali;
Değişkenadı=input(‘ifade’)
şeklindedir. Bu komutla kullanıcıdan değer girmesibeklenir.
» num=input(‘Pozitif bir sayı giriniz: ')Pozitif bir sayı giriniz: 5num =
5
Yukarıdaki örnekte komut yazıldıktan sonra ekranakullanıcıdan pozitif bir sayı isteyen cümle gelecek. Kullanıcıörneğin 5 değerini girdiğinde num değişkene 5 değeriniatayacaktır.
>> a=input('')4a =
4
>> a=input('a= ')İnput komutu 3 farklı şekilde
>> a=input('a= ')a= 4
a =4
>> a=input('değer atayınız a= ');değer atayınız a= 3
farklı şekilde girilebilir
>> sayi1=input('Lutfen 1. Sayiyi Giriniz= ')
input KOMUTU ĐLE KLAVYEDEN SAYISAL VER Đ GĐRME
Tek tırnaklar arasına nasıl bir bilgi girmesi gerektiği hususunda
kullanıcıya verilecek uyarı mesajıyazılır.
>> sayi1=input('8')
yazılır.
‘Keyboard’ & ‘return’ komutuİşletilen programların kodlarına ve içeriklerine dışarıdanmüdahale edebilmek için kullanılır. Böylece programınisletilmesi durdurulur, fonksiyonun kontrol edilebilmesinisağlar, değişkenler üzerinde inceleme ve değişiklik yapılabilir.Bu komutun aktif olduğu “K>>” seklindeki özel bir komutistem sembolü ile belirtilir. Bu özellikten çıkıp programınakısına devam edebilmek için, “ return ” komutu girilir ve “
II. Klavyeden Girme
akısına devam edebilmek için, “ return ” komutu girilir ve “enter ” tuşuna basılır. Bu özellik sayesinde çalışma alanındaüretilen sonuçlara anında ulaşabilmek mümkün olmaktadır.Return’den önce program ya da değişken yazılabilir.
Örnek: Aşağıdaki örnekte M-File ve komut icra satırları verilmiştir.
Bu program komut satırında çalıştırılırsa aşağıda gösterildiği gibi icra edilirBirinci sayıyı giriniz: 4İkinci sayıyı giriniz: 2K>> c=10c =10K>> returnd =80K>> return
Örnek:Aşağıdaki dosyayı yazarak çalıştırın.
A=10;B=16;X=A+B;Y=X/2;
%Y=X/2;Keyboard %Y değerini kontrol et ve yazmayı bitir
%‘return’ komutu kalan programı çalıştırır.Z=A-B
> A=10;B=16;X=A+B;Y=X/2;keyboard % Y değerini kontrol etZ=A-BK>> AA =
10K>> ZK>> Z??? Error using ==> keyboardUndefined function or variable 'Z'.K>> YY =
13K>> returnZ =
-6
i=menu(‘title’, ‘option1’, ‘option2’,……..)
>>i=menu('Select your favorite name','ahmet','mehmet','ali');if i==1
disp('ahmet is your friend')elseif i==2
disp('mehmet is your brother')elseif i==3
disp('ali is your father')
III. ‘menu’ fonksiyonu
12
disp('ali is your father')else
disp('No selection is done')end
ahmet is your friend
‘pause’ komutu programın geçici olarakdondurulmasını sağlar. Devam etmek için klavyeden herhangibir tuşa basabilirsiniz veya belirtilen süre sonundakendiliğinden devam eder.
pause Fonksiyonu klavyeden herhangi bir tuşabasıncaya kadar geçici durdurma yapar.
pause(k) Fonksiyonu n saniye kadar geçici durdurma yapar.
IV. ‘pause’ komutu
13
yapar.
for i=1:10ipause(2)end
Okuma ve Dosyaya Kaydetme
• Dosyadan veri almada kullanılan bir çok fonksiyon vardır.
1.’load’ fonksiyonu: Diskte saklı bir dosya içindeki değişkenleri tekrar belleğe yükler.
load % matlab.mat (default) dosyasını yükler
load(‘dosyaismi’) %verdiğiniz dosya isminde yüklerload(‘dosyaismi’) %verdiğiniz dosya isminde yükler
load(‘dosyaismi’, ’x’, ’y’, ’z’)%sadece x, y, z değişkenlerini verdiğiniz dosyaya yükler
load dosyaismi x, y, z % sadece x, y, z değişkenlerini verdiğiniz dosyaya yükler
Not:
1. Dosya isminin yanında uzantısını yazmazsanız .mat uzantılı olarak kaydeder.
2. Load fonksiyonu sadece sayısal veri içeren dosyalarda kullanılır
ÖRNEK:
Aşağıdakileri yazın ve abc.txt dosyası olarak kaydedin
1 3 4 5 77 8 0 9
>>load abc.txt %Dosyayı workspace’e yükler
>>abc
Okuma ve Dosyaya Kaydetme
1 3 4 5 77 8 0 9
Şayet biz değişken ismini değiştirmek istersek aşağıdaki komutu yazmamız gerekir.
>>test=load (‘abc.txt’) % şimdi veriler ‘abc.txt’, ‘test’ olarak kaydedilir.
2.’save’ function: Değişkenleri kaydeder
save %Workspace’deki bütün verileri matlab.mat
olarak kaydeder
save(‘dosya ismi’) %Verileri veriğiniz dosya isminde kaydeder
save(‘dosya ismi’, ’x’, ’y’, ’z’) %dosyaya sadece x, y, z değişkenlerini yükler
Okuma ve Dosyaya Kaydetme
yükler
save dosya ismi x, y, z % dosyaya sadece x, y, z değişkenlerini yükler
Not:-
1. Dosya isminin yanında uzantısını yazmazsanız .mat uzantılı olarak kaydeder.
2. Değişkenleri içinde bulunulan directory’den başka bir directory’yekaydetmek için, dosyanın tüm adı belirtilmelidir
3. ‘textread’ fonksiyonu: Şayet bir text dosyası sayı içeriyorsa dosya önce fopenkomutu ile çağrılmalı sonra textread komutu ile okunmalıdır.
fid=fopen(‘abc.txt’, ’r’) % abc.dat dosyasını okumak için açar
� textread komutu ayrılmış değişkenleri okumada kullanılabilir.
Okuma ve Dosyaya Kaydetme
� textread komutu ayrılmış değişkenleri okumada kullanılabilir.
[a, b, c, d]=textread(‘abc.txt”, ‘%f %c …….’, N)
(N okunacak satır sayısıdır. N yoksa dosyanın tümü yani son satırına kadar okunur)
gibi
[isim, çeşit, a, b, c]=textread(‘abc.txt’, ’%s %s %f %f %f’)
%s: dizge tanımı
%f:kayan noktalı sayı formatıdır
•Matlab’de dosyaların içindeki metnin okunması için textread fonksiyonu bulunmaktadır. Örneğin, aşağıda koordinat.txt dosyasındaki verilerin okunması istensin:
Okuma ve Dosyaya Kaydetme
•Bunun için,
fonksiyonu kullanılır. nokta, nokta isimlerini içeren bir hücre dizisi; x, x koordinat vektörü ve y, y koordinat vektörü olarak atanır.
•fopen, program çıktılarının yazdırılacağı dosyayı açar, fprintf yazdırır vefclose ise yazdırma işlemini sonlandırır.•Örneğin, bir a kenarı programda hesaplatılmış olsun. Bu programın açıktısını, kenar.txt isimli bir dosyaya yazdırmak için, aşağıdaki kodlardüşünülür;
Okuma ve Dosyaya Kaydetme
a=150.0234234; fid=fopen('kenar.txt','w');fprintf(fid,'%s%1.4f','kenaruzunlugu=',a);fclose(fid);
w bu dosyanın üzerine yazılacağını gösterir.(a“mevcut metnin altına yaz”demektir)
düşünülür;
Program Çıkışı ve Sonuç Gösterme2. ‘disp’ fonksiyonu
>>A=[1 2; 3 4]; % değişkenleri gösterir
>>disp(A)
1 2
3 4
>>disp(‘En büyük sayı:’) % mesajı gösterir
En büyük sayı:
1. Dosya açma-kapama fonksiyonları� ‘fopen’ fonksiyonu: komutu bilgi kaydetmek için veri dosyası açar veya
oluşturur. Yazım formatı:
• fid=fopen( dosya ismi, izin_kodu)burada
fid=file id izin_kodu = erişim modunu belirten bir karakter dizisidir
Giriş-Çıkış Fonksiyonları
izin_kodu = erişim modunu belirten bir karakter dizisidir
• [fid] = fopen(dosya ismi, izin_kodu, format)burada
format = dosyadaki verilerin türünü açıklar
fid= fopen('bil_prog.txt','wt');
Yapısı ile .txt dosyası çalışılmakta olan klasör içine açılır. Örneğin,
bil_prog.txt. Eğer istenilirse farklı bir adrese de ilgili tx dosyası açılabilir.
Giriş-Çıkış Fonksiyonları
Burada “wt” txt dosyasının hem yazma hem de okuma için açıldığını
belirtir.
Ayrıca “fid” yerine “fid1”, “fid_1” veya “fid_sonuclar” gibi farklı ifadeler
kullanılabilir.
>> fid_banu= fopen('deneme_5.txt','wt');>> fprintf(fid_banu, 'd666666666eneme %i \n',4);>> fclose(fid_banu);>> >> fprintf('d666666666eneme %i \n',4);d666666666eneme 4
Giriş-Çıkış Fonksiyonları
d666666666eneme 4 >> % ekrana yazar
d666666666eneme 4
clear all; clcfid= fopen('deneme_1.txt','wt');fid1= fopen('sonuclar.txt','wt');% fid yani deneme 1 e yazarfor i=1:10
fprintf(fid,' deneme %i \n',i);end
% fid1 yani sonuclar.txt ye yazar
Giriş-Çıkış Fonksiyonlarıdeneme 1.0000 deneme 8.0000 deneme 27.0000 deneme 64.0000 deneme 125.0000 deneme 216.0000 deneme 343.0000 deneme 512.0000 % fid1 yani sonuclar.txt ye yazar
for i=1:10fprintf(fid1,' deneme %i \n',i^2);
end% ekrana yazarfor i=1:10
fprintf(' deneme %15.4f \n',i^3);endfclose(fid);fclose(fid1);
deneme 512.0000 deneme 729.0000 deneme 1000.0000
>>
Ekran Çıktısı
clear all; clcfid= fopen('deneme_1.txt','wt');fid1= fopen('sonuclar.txt','wt');% fid yani deneme 1 e yazarfor i=1:10
fprintf(fid,' deneme %i \n',i);end
% fid1 yani sonuclar.txt ye yazar
Giriş-Çıkış Fonksiyonları
% fid1 yani sonuclar.txt ye yazarfor i=1:10
fprintf(fid1,' deneme %i \n',i^2);end% ekrana yazarfor i=1:10
fprintf(' deneme %15.4f \n',i^3);endfclose(fid);fclose(fid1);
clear all; clcfid= fopen('deneme_1.txt','wt');fid1= fopen('sonuclar.txt','wt');% fid yani deneme 1 e yazarfor i=1:10
fprintf(fid,' deneme %i \n',i);end
% fid1 yani sonuclar.txt ye yazar
Giriş-Çıkış Fonksiyonları
% fid1 yani sonuclar.txt ye yazarfor i=1:10
fprintf(fid1,' deneme %i \n',i^2);end% ekrana yazarfor i=1:10
fprintf(' deneme %15.4f \n',i^3);endfclose(fid);fclose(fid1);
� ‘fopen’ fonksiyonunun diğer kullanımları
• fids=fopen(‘all’)buradafids=Bütün açık dosyaların dosya İd’sini vektör olarak gösterir
Giriş-Çıkış Fonksiyonları
• [dosyaismi, izin_kodu, format] = fopen(fid)
� ‘fclose’ fonksiyonu: Yapısı ile .txt dosyası kapatılır.Dosya kapatılmadığı sürece tüm her şey satır satırtxt dosyasına yazılır. Dosya fclose ile kapatılırsayazma işlemi yapılamaz. Aynı dosya tekrar açılırsa
Giriş-Çıkış Fonksiyonları
yazma işlemi yapılamaz. Aynı dosya tekrar açılırsaiçindekiler silinerek program tekrar üst satırdanitibaren yazmaya başlar.
2. Formatlı giriş-çıkış fonksiyonları: Çıkışın formatlı olarak yazdırıldığı komutlardır.
i. fprintf fonksiyonu
Giriş-Çıkış Fonksiyonları
i. ‘fprintf ‘ fonksiyonu: fprintf(fid, format, değişkenadı)
Örnek:x = 0:.1:1; y = [x; exp(x)];fid = fopen('exp.txt','w');fprintf(fid,'%6.2f %12.8f\n', y);fclose(fid);Şimdi ‘exp.txt’ isimli dosyayı açıp verilere bakalım
Giriş-Çıkış Fonksiyonları
Note: 1. Burada %6.2f . Her zaman % işareti ile başlar6 = eşitlikten sonra 6 boşluk bırakır2 = virgülden sonraki basamak sayısıf = sabit nokta (ondalık)
0.00 1.00000000 0.10 1.10517092 0.20 1.22140276 0.30 1.34985881 0.40 1.49182470 0.50 1.64872127 0.60 1.82211880 0.70 2.01375271 0.80 2.22554093 0.90 2.45960311 1.00 2.71828183
fprintf('Ekrana Basılacak Açıklama %X \n', deger);
Burada %X Kısmında Kullanabileceğimiz Seçenekler :%c : deger in tek bir karakter olduğunu gösterir.%s : deger in bir karakter dizisi (string) olduğunu gösterir.%d : deger in bir tamsayı olduğunu gösterir.
Giriş-Çıkış Fonksiyonları
%d : deger in bir tamsayı olduğunu gösterir. %f : deger in bir ondalıklı sayı olduğunu gösterir. (.6)%g : deger i mümkün olan en kompakt forma sokar. %e : deger in eksponansiyel olduğunu gösterir.
Diğer yandan : \n : İmleci bir alt satırın başına götürür. (n, newline)\t : İmleci bir TAB kadar sağa kaydırır.
‘format’ ın genel yazım şekli;%a.be
veya %+a.be % + = always print with sign character (+ or -)veya %-a.be % - = left justified veya %0a.be % pad zeros in starting
Burada;
Giriş-Çıkış Fonksiyonları
Burada;a = alan genişilğib = virgülden sonraki basamak sayısıe = karakter(%c tekil karakter, %s karakter dizisi, %d işaretli ondalık sayı, %e eksponansiyel (sayıyı üstel şekilde gösterir), %f sabit nokta (ondalık)
Not:1. '%6.2f %12.8f\n‘ aralarında boşluk yoktur2. \n yeni satır anlamına gelir
X = 4;
Y = 56.23;
Z = 'Merhaba Dünya' ;
Giriş-Çıkış Fonksiyonları
Q = 'c';
fprintf(' Tam sayı örneği ... X = %d \n ', X);
fprintf(' Ondalıklı sayı örneği ... Y = %f \n ', Y);
fprintf(' String (katar) örneği ... Z = %s \n ', Z);
fprintf(' Char (karakter) örneği ... Q = %c \n ', Q);
Yukarıdaki kullanımda %5.3f ifadesi float formatında üç haneli şekilde yazmaya yarar. İfadenin bir alt satıra geçmesi için \n kullanılır. Burada kullanılan 5 ise arttırıldıkça sayı sağa doğru kayar.