Döküman - İYTE IEEE Matlab Kurs Notları - 2
-
http://cscem.blogspot.com/2013/11/iyte-ieee-matlab-kurs-notlar-2.html
Geçen hafta aynı plotta 2 farklı grafik çizimini göstermiştim.Şimdi istersem bu iki grafiğide ayrı ayrı plotlarda gösterebilirim.Bunun içinde figure() fonksiyonu kullanılıyor.
Şimdi önce bi grafik eksenlerimizi oluşturalım.
>> x = 0:pi/180:2*pi;
>> y = sin(x);
>> z = cot(x);
Sonrada figure(plot numarası) dediğimizde boş bir plot açılıyor ardından plotumuzu yazıyoruz ve grafiğimizi görüyoruz.
>> figure(1)
>> plot(x,y)
dedim 1. plot için
ve
>> figure(2)
>> plot(x,z)
böylelikle iki ayrı plotta grafiklerimizi görmüş olduk.
Şimdi böyle ayrı ayrı iki ekranda değilde tek bir ekranda bu iki ayrı plotu görmek istersekte subplot() fonksiyonumuzu kullanıyoruz.
Öncelikle subplot() ta matriks miş gibi davranıyor ve 2x1 lik bir ekran yani alt alta göstermesini söylüycez.Daha sonrada plot numarasını söylüyoruz.
a = satır sayısı
b = sütun sayısı
c = plot numarası
subplot(a,b,c)
Şimdi 2x1 lik ekranda 2 plot yazdırmak istersek;
1. grafiğimizi
>>> subplot(2,1,1)
>>> plot(x,y)
2. grafiğimizi
>>> subplot(2,1,2)
>>> plot(x,y2)

Şimdi grafiğimizi, x ve y eksenlerini adlandırmak istersek - Ben Qt-Octave kullanıyorum linuxta ve Türkçe karakterlerde sorun çıkardı.Matlabın kendisinde windowsta böyle bir sorun yoktu dersteyken. -
title() fonksiyonu ile grafiğe başlık veriyoruz.
xlabel() x eksenini adlandırma,
ylabel() y eksenini adlandırmamızı sağlıyor.
>>> title('TANJANT GRAFIGI');
>>> xlabel('ZAMAN')
>>> ylabel('HIZ')

Şimdi 3 Boyutlu grafik çizimi yapmak istersek;
3 boyutlu olduğuna göre 3 ayrı eksene ihtiyacımız var bildiğimiz üzere ; x,y,z eksenleri.
x ve y vektörlerimizi meshgrid() fonksiyonu ile belirliyoruz.
z vektörümüzü de x ve y den birine veya ikisine bağlı bir fonksiyon olarak tanımlıyoruz.
Örneğimizde; exp() fonksiyonu logaritma sabiti e sayısı oluyor.
X.*exp() ; X vektörü ile exp() değerlerini componentwise(element by element) olarak çarpıyor hatırladığınız üzere.
-X.^2 ; X değerlerinin karesini alıyor yine componentwise (element by element) olarak.Kare almakta anlıcağınız üzere sayi^2 ile oluyor.
Burda Z vektörü X değerleri ile e üzeri negatif X kare negatif Y kare değerleri toplamı çarpımı oluyor.
Şimdi çizim yapmak için 3 yöntem var bunları görelim.
surf() ile yüzeysel görüyoruz.
mesh() ile içi boş olarak görüyoruz.
contour() ile izohips olarak görüyoruz.
>>> [X,Y] = meshgrid(-2:.2:2, -2:.2:2);
>>> Z = X .* exp(-X.^2 - Y.^2);
>>> surf(X,Y,Z)

>>> mesh(X,Y,Z)

>>> contour(X,Y,Z)

Şimdi artık script yazımına geçersek.File menüsünden New Script seçiyoruz hatırladığım kadarıyla.
chdir('~/octave'); %{ Bu octave'a özel bir komut scriptlerimizin nerde bulunduğunu belirtmek zorundayız.
function esitlikFonksiyonu() % function fonksiyon_adı() }%
x = input('Sayi giriniz : '); % input() fonksiyonu ile kullanicidan giriş yapmasını istiyoruz.C'deki scanf()
y = input('Tekrar sayi giriniz : ');
if (x == y) % sayılar eşitse
display('Girdiğiniz sayilar esit ve toplamlari ') % display() fonksiyonu ile ekrana yazdırıyoruz.C'deki printf()
else
display('Sayilar esit degildir.')
end % end ile if 'i kapatıyoruz.
Yeni bir örnek script'e bakarsak;
chdir('~/octave');
function boyutKontrolFonksiyonu(a,b) % fonksiyonumuz iki parametre alıcak.
[m1,n1] = size(a); % matriks satır sayısını m1'e , sütun sayısını n1'e atadık.
[m2,n2] = size(b);
if (m1 == m2 && n1 == n2)
display('Matrikslerin boyutlari eşittir... ')
elseif(m1 == m2 && n1 ~= n2) % ~= eşit değildir anlamında.C'de ki != ile aynı.
display('Matrikslerin sütun boyutları eşit değildir...')
elseif(m1 ~= m2 && n1 == n2)
display('Matrikslerin satır boyutları eşit değildir...')
else
display('Matriksler eşit değildir')
end
-
Guzel olmus, eline saglik.
-
çizik
