Graphs in MATLAB

Kategori: MATLAB , 08 Ağustos 2019 , JanFranco


Bu yazımda MATLAB'ın en önemli özelliklerinden, grafik işlemlerini göreceğiz. Grafik çizdirebilmek için plot() fonksiyonunu kullanacağız fakat tek fonksiyon plot() fonksiyonu değildir. plot() dışındaki fonksiyonları da göreceğiz. Örneklerle başlayalım. İlk olarak 2 boyutlu bir grafik çizdirebilmek için x ve y değerlerini tanımlayalım. Daha sonra plot() fonksiyonu ile grafiği çizdirelim:


x = 1:1:10;
y = x * 2;
figure, plot(x, y);
Matlab graph

Burada x değerlerini 1-10 arasında, birer birer artırarak belirledik. y değerlerini ise x değerlerinin iki katı olarak belirledik. plot() fonksiyonuna x ve y parametrelerini göndererek grafiği çizdirdik. Fonksiyonun başına figure anahtar kelimesini yazmamızın sebebi şudur, plot() fonksiyonunu art arda çağırırsak en son çağırdığımız fonksiyon çalışacak. Yani sırayla çalışacaklar ancak her çağırıldığında önceki grafik silinecek, yenisi çizilecek. Bunu engellemek için figure anahtar kelimesi ile yeni pencereler oluşturup, grafikleri bu pencerelerde çizdirebiliriz. Bir örnek daha yapalım:


x2 = 0:0.1:pi*10;
y2 = sin(x2);
figure, plot(x2, y2);
Matlab graph

Elimizde iki fonksiyon olduğunu düşünelim. Bu fonksiyonları tek pencerede birlikte görüntüleyebiliriz:


x = linspace(-4*pi, 4*pi);
y = sin(x);
z = cos(x)
plot(x, y, x, z);
Matlab graph

Şimdi bu fonksiyonları ayrı ayrı görüntüleyelim:


x = linspace(-4*pi, 4*pi);
y = sin(x);
z = cos(x)
figure,plot(x, y);
figure,plot(x, z);
Matlab graph

Matlab graph

Örneğin bir script hazırladık ve 15 grafik görüntüledik. Script çalışmayı durduğunda veya tekrar çalıştırıldığında bu grafikler kapanmaz. İki kere çalıştırdığımızda bir scripti karşımıza 30 pencere çıkacaktır bu durumda. Bunu engellemek için 'close all' şeklinde bir komut gönderebiliriz:


close all;
x = linspace(-4*pi, 4*pi);
y = sin(x);
z = cos(x)
figure,plot(x, y);
figure,plot(x, z);
Bu şekilde her script çalıştığında ilk olarak close all komutu çalışacak böylelikle açık olan tüm grafik figürleri kapanacak. Başka bir örneğe geçelim, elimizde 3 fonksiyon olduğunu düşünelim. Bu fonksiyonları tek pencerede basabiliriz ancak fonksiyonlar karışabilir. Bu fonksiyonların renklerini, tiplerini vs. değiştirerek karışmalarını engelleyebiliriz:


x = 0:pi/20:pi*3;
y1 = sin(x);
y2 = cos(x);
y3 = (y1.^2 + y2.^2)/2;

plot(x, y1, 'g', x, y2, 'r--o', x, y3, 'r*')
Matlab graph

Burada ilk fonksiyonun ardından 'g' parametresini göndererek, fonksiyonu green yani yeşil renkte çizdirdik. İkinci fonksiyonun ardından 'r--o' parametresini göndererek fonksiyonu red yani kırmızı renkte ve çizgi çizgi + yuvarlaklar şeklinde çizdirdik. Son fonksiyonun ardından da 'r*' parametresini göndererek fonksiyonu kırmızı renkte yıldız karakterlerini kullanarak çizdirdik. Bir başka örnek yapalım, elimizde iki fonksiyon olduğunu düşünelim. Bu fonksiyonları tek bir pencerede üst üste bastırabiliriz. Bunu hold on komutu ile yapabiliriz:


x = linspace(-2*pi, 2*pi);
y1 = sin(x*2) + 1;
plot(x, y1);

y2 = cos(x);
hold on
plot(x, y2);
hold off
Matlab graph

Grafiklerin daha iyi anlaşılabilmesi adına, x, y eksenlerine açıklayıcı isimler, grafiğe başlık, her fonksiyona bir isim vs. yazdırabiliriz:

x = linspace(-2*pi, 2*pi);
y1 = sin(x*2) + 1;
plot(x, y1);

title('Sensör degerlerin trigonometrik karsiligi');
xlabel('Sensörden gelen veriler');
ylabel('Trigonometrik karsiliklari')

y2 = cos(x);
hold on
plot(x, y2);
legend('sin(2x)', 'cos(x)')
hold off
Matlab graph

Burada xlabel(), ylabel() fonksiyonları ile x ve y eksenlerine açıklayıcı isimler yazdık. title() fonksiyonu ile grafiğe bir başlık verdik. legend() fonksiyonu ile grafiğin sağ üst köşesinde açıklayıcı küçük bir pencere oluşturduk. Başka bir örnek yapalım, tek bir pencerede ayrı ayrı alt grafik çizdirebiliriz:


subplot(3, 1, 1);
x1 = linspace(90, 180);
y1 = cos(x1);
plot(x1, y1);

subplot(3, 1, 2);
y2 = sin(x1);
plot(x1, y2);

subplot(3, 1, 3);
x2 = -100:0.5:100;
y3 = x2.^x2;
plot(x2, y3);
Matlab graph

Burada subplot() fonksiyonunu kullanarak alt grafikler oluşturduk. subplot() fonksiyonunun ilk iki parametresi matris boyutudur. Burada 3 ve 1 değerlerini girerek 3 satırlık, tek sütunluk bir matris oluşturduk gibi düşünebiliriz. Üçüncü parametre bu matrisin hangi elemanını kullanacağımızdır. Burada ilk subplot() fonksiyonunda (3, 1, 1) parametrelerini gönderdiğimizde, matrisin birinci satırının birinci sütunundaki kısmı kullanacağımızı belirttik. Daha sonrasında plot() fonksiyonu ile grafiği çizdirdik. Yazının en başında tek fonksiyonun plot() fonksiyonu olmadığından bahsetmiştim:


area(x);
bar(x);
Matlab graph

Matlab graph

area() ve bar() fonksiyonlarının dışında da farklı farklı fonksiyonlar mevcut, araştırabilirsiniz. Son olarak bu çizdirdiğimiz grafikleri kaydetmeyi görelim:


saveas(gcf, 'deneme.jpg');
Grafiği kodları ile beraber kaydetmek için:


publish('<matlab dosyad adı>', '<dosya formatı>');
publich('untitled.m', 'html');
MATLAB script hangi dosyada ise o dosyaya kaydedecektir.


Sonraki Yazı: File and Folder Operations
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın