MATLAB'A GİRİŞ
MATLAB
⦁ açılımı : matrix laboratory
⦁ Matlab'ın temelindeki yapı boyutlandırma gerektirmeyen matrixlerdir.
⦁ Matlab'ı gelişmiş bir hesap makinesi olarak düşünebiliriz.
Matlab ekranı genel olarak 3 kısımdan oluşur:
1-command window(komut penceresi)
2-workspace(tanımladığımız değişkenlerin kaydedildiği yer)
3-command history(komut geçmişi)
current folder(kodu nereye kaydettiğimizi gösteriyor)
Command window bizim için, değişken tanımladığımız ve küçük işlemler yapabildiğimiz bir kısım. Tek satırlık kodlar yazabiliriz ama daha gelişmiş kodlar yazmak için editorü açmamız gerekir. Bunu ise command window'a edit yazarak açıyoruz.
önemli komutlar
clc komutu= Sadece command window'u temizler. Workspace değişmez, yani tanımladığımız değişkenler kaybolmaz.
clear komutu= Sadece workspace temizlenir. Tanımladığımız değişkenler kaybolur.
edit komutu= Kodu yazdığımız yeri açar.
Değişken Türleri;
tam sayı =input
ondalık sayı = double, float
düzyazı = string
harf,karakter = char
bool = true, false değerlerini alır.
⦁ Değişkenleri tanımlarken ';' kullanmak ne işe yarıyor? Bir örnekle göstereyim.
>> a=5
a =
5
>>
gördüğünüz gibi yukarıda noktalı virgül kullanmadım bu yüzden değişken workspace'de tanımlandı ek olarak command window'da tekrar yazıldı.
>> a=5;
>>
yukarıda ise noktalı virgül kullandım burada sadece workspace'de değişkeni tanımladı, command window'da göstermedi.
Editörde yazdığımız kodların çıktılarını(sonuçlarını) command window'da görüyoruz.
Editörü sadece edit komutu ile değil ctrl+n ile de açabiliyoruz.
Değişkenleri Adlandırma
Değişken tanımlarken dikkat etmemiz gereken bazı kurallar vardır burada onlara değineceğim.
>Değişkenler sayılarla başlamaz.
>Değişkenleri isimlendirirken boşluk kullanılmaz.
>Türkçe harf kullanılmaz örneğin ö,ü,ı gibi
>Matlab büyük küçük harfe duyarlıdır. Örneğin matlab, sayı ve Sayı değişkenlerini iki farklı değişken olarak algılar.
>Değişken isimleri en fazla 63 karakterden oluşur.
Matlab'da ondalık sayı yazmak için '.' kullanıyoruz. 3.5 gibi
3,5 yazarsak bunu iki farklı sayı olarak algılar.
Biz bir sayı yazdığımızda örneğin;
3
buna matlab, ans(answer) adlı bir değişken atar.
>Matlab'da matematikteki işlem önceliği geçerlidir. Örneğin;
4*3-5
önce çarpma işlemini sonra çıkarma işlemini yapar.
Workspace'den sadece bir değişkeni silmek istersek; örneğin a değişkenini silmek istersek clear a yazabiliyoruz.
Matlab'da tanımlı bazı fonksiyonların kullanımını bilmiyorsak öğrenmek için help komutunu kullanabiliriz.
help plot şeklinde kullanıyoruz. Burada plot fonksiyonunu nasıl kullanacağımızı açıklayan bir yazı çıkar.
doc plot yazarsak; help menüsü açar, plot fonksiyonun nasıl kullanacağını açıklar.
Editöre yazdığımız kodu çalıştırmak için üst kısımda yer alan run'a basabiliriz ama bunun için dosyayı kaydetmemiz gerekir. Kaydetmeden çalıştırmak istersek ctrl+enter yapabiliriz.
Matrix oluşturmak
matris=[1,2,3;4,5,6;7,8,9]
matris tanımlarken bir alt satıra inmek için ';' kullanıyoruz. Yukarıdaki matrisi şu şekilde de tanımlayabiliriz:
matris=[1 2 3;4 5 6;7 8 9]
Aşağıda bazı matris işlemlerine göz atacağız.
Matris çarpması yaptırmak
matris1=[1 2 3]
matris2=[4;5;6]
sonuc=matris1*matris2
Cevabımız 32 çıkıyor. Yani birinci matrisin satırı ile ikinci matrisin sütununu çarpıyor.
Birebir Çarpma
sonuc2=matris1.*matris2
cevabımız sonuc2 =
4 8 12
5 10 15
6 12 18
Bir matrisin izini bulmak için
matris3=[1 2 3;4 5 6;7 8 9]; (aşağıda birkaç örnekte bu matrisi kullanacağım)
trace(matris3)
cevabımız 15 çıkıyor.
Üst üçgen matris oluşturma
triu(matris3)
ans =
1 2 3
0 5 6
0 0 9
Alt üçgen oluşturma
tril(matris3)
ans =
1 0 0
4 5 0
7 8 9
Sıfır matrisi oluşturma
zeros(1,3) (ilk girdiğimiz sayı satır ikinci girdiğimiz sayı sütun sayısını belirtiyor)
ans =
0 0 0
zeros(3) yazarsak 3 e 3lük sıfırlardan oluşan bir kare matris oluşur.
ans =
0 0 0
0 0 0
0 0 0
Elemanları birlerden oluşan matris oluşturma
ones(1,5)
ans =
1 1 1 1 1
Birim matris oluşturma
eye(3,4)
ans =
1 0 0 0
0 1 0 0
0 0 1 0
Bir matrisin tersini almak
matris=[4,5,5;6,7,5;3,9,6];
inv(matris)
ans =
-0.0625 0.3125 -0.2083
-0.4375 0.1875 0.2083
0.6875 -0.4375 -0.0417
Matrisin transpozunu alma(satırları sütun, sütunları satır yapıyor)
matris=[1 2 3;4 5 6;7 8 9];
matris'
ans =
1 4 7
2 5 8
3 6 9
Matrisin determinantını almak
matris3=[1 4,5;4,7,8;3,5,7];
det(matris3)
ans =
-12
Matrisin herhangi bir elemanını bulma
matris(2,1) = matrisin 2. satırı 1.sütunu
matris(;2) = 2. sütun tüm satırlar
matris(3;) = 3. satır tüm sütunlar
input
Dışarıdan veri almak için kullanılır. Örneğin;
isim=input('isminizi giriniz:','s')
yukarıdaki kod ile dışarıdan isim değişkenini aldık şimdi ismi yazdırmak istersek;
fprintf('%s\n',isim)
fprintf = ekrana bir şey yazdırmak için kullanıyoruz.
%s neden kullandık?
çünkü bizim dışarıdan aldığımız değişken kelime yani düz yazı olarak geliyor ve biz matlab'a düzyazı yazdırmak (string yazdırmak) istediğimizi belirtiyoruz.
% işareti kullanılmak zorunda.
,isim yazmamızın nedeni?
virgülün yanına yazdırmak istediğimiz değişkeni yazıyoruz
/n ne işe yarıyor?
imleci bir alt satıra götürüyor.
örneğin ondalık sayı yazdırmak istiyoruz;
sayi=2.3
fprintf('%f',sayi)
command windowda
sayi: 2.300000
olarak görüyoruz.
%f kullandık neden?
çünkü ondalık sayı =float
Ekrana bir şey yazdırmak için kullandığımız başka bir komut ise;
disp('merhaba')
veya disp ile bir değişkeni de yazdırabiliriz;
sayi=2.3;
disp(['sayi = ',num2str(sayi)]) =>dışarıdan değişken alırsak bu şekilde kullanıyoruz.(sayı değişkeni gibi)
num2str() fonksiyonu dışarıdan aldığımız herhangi bir değişkenin türünü stringe çeviriyor.
disp ile ekrana bir bilgi yazdırdığımızda imleç alt satıra geçiyor.
fprintf ile ekrana bir bilgi yazdırdığımızda imleç yazdırdığımız bilginin yanında kalıyor.
Editöre kod yazmaya başlamadan önce ;
clear all,clc
komutlarıyla başlarız. Nedeni önceden tanımlanmış değişkenler varsa temizlemek için.
İlişkisel operatörler
eşit ==
eşit değil ~=
büyük >
küçük <
büyük eşit >=
küçük eşit <=
Örnek;
a==b a ile b eşittir
a~=b a ile b eşit değildir
a>b a b'den büyüktür
a<b a b'den küçüktür
a>=b a b'ye büyük eşittir
a<=b a b'ye küçük eşittir
Mantıksal operatörler
ve işareti &
veya işareti ||
değildir işareti ~
İf komutu
if şart if'in yanına yazdığımız şart doğru ise altındaki işlemi gerçekleştirir.
işlem
elseif şart2 yukarıdaki if şartı doğru değil o yüzden bu şarta bakıyor eğer şart doğru
işlem2 ise işlem2'yi yapıyor.
else eğer hiçbir şart doğru değilse else'in altında yazan işlemi gerçekleştirir
işlem3
end
Not ortalaması örneği
clear all,clc
vize=input('vize notunuz: ');
final=input('final notunuz: ');
ortalama=(vize*0.4)+(final*0.6);
if ortalama>=81
disp('harf notu =AA');
elseif ortalama>=77 && ortalama<=81
disp('harf notu=AB');
else
disp('dersi geçemediniz');
end;
Sayının çift veya tek olduğunun bulunması:
clear all,clc
sayi=input('bir sayi giriniz: ');
if mod(sayi,2)==0
fprintf('girilen sayi çifttir\n')
else
fprintf('girilen sayi tektir\n');
end
Mod komutu; mod(a,b) ile a'nın b'ye bölümünden kalanı buluyor.
örnek
clear all,clc
nakit=input('ne kadar paran var: ');
if nakit>=50
disp('elma al')
elseif nakit>30 && nakit<50
disp('portakal al')
else
disp('hiçbir şey alma')
end
Switch-case yapısı
giriş ifadesi, her bir case değeri ile karşılaştırılır.
switch giris_ifadesi
case ifade1
işlem 1
case ifade2
işlem 2
.
.
otherwise
işlem n
end
Haftanın gününü bulma:
gun=input('hangi gündeyiz: ');
switch gunler #(gunler) olarak da yazabiliriz
case 1
disp('pazartesi')
case 2
disp('salı')
case 3
disp('çarşamba')
case 4
disp('perşembe')
case 5
disp('cuma')
case 6
disp('cumartesi')
case 7
disp('pazar')
Sayı Yuvarlama Fonksiyonları
fix(sayi) = sıfıra yakın ilk tam sayıya yuvarlıyor
sayi1=fix(3,3)
sayi1=3
sayi2=fix(-5.9)
sayi2= -5
round(sayi) =kendisine en yakın tam sayıya yuva
sayi3=round(3.1)
sayi3= 3
sayi4=round(-9.85)
sayi4= -10
ceil(sayi) = +sonsuza doğru karşılaştığı ilk tam sayıya yuvarlanıyor.
sayi5=ceil(8.1)
sayi5=9
floor(sayi) = -sonsuza doğru karşılaştığı ilk tam sayıya yuvarlanıyor.
sayi6= floor(6.8)
sayi6=6
rastgele sayı
rastgele_sayi=rand
sifir_ile_on_arasinda_rastegele_sayi=10*rastgele_sayi
rand(3,3) 3x3lük rastgele sayılı matris
rand(4) 4x4 lük
Döngüler
for döngüsü
for döngü değişkeni =başlangıç değeri: artım miktarı: bitiş değeri
işlem
end
örnek
clear all,clc
ad_soyad=input('adınızı ve soyadınızı giriniz: ','s');
tekrar_sayisi= input('ekranda kaç defa yazılsın :');
for i=1:1:tekrar_sayisi
fprintf('%s\n',ad_soyad)
end
örnek
clear all,clc
giris=input('kaça kadar sayıları toplasın');
toplam=0;
for i=1:1:giris
toplam=toplam+i;
end
fprintf('toplam =%f',toplam)
% yorum satırı (yorum satırına yazdığımız ifadeler matlab tarafından okunmaz)
while döngüsü
while(1) = hep doğru olduğu için altında yazan işlemleri yapmayı sonsuza kadar sürdürür. Sonsuz döngüye girer.
koşul yerine yazacağımız değişkeni yukarıda tanımlıyoruz.
while(sayac<10)
işlem
sayac=sayac+1
end
break komutu while döngüsünden çıkmak için kullanılır.
continue komutu kullanıldığı yerde döngü bloğunun işlemi yapmadan başa dönmesini sağlar.
shift+enter aynı isimli değişkenlerin ismini topluca değiştirebiliyoruz.
Yorumlar
Yorum Gönder
Efendim?