Bilgisayar Programlama
MATLAB
Grafik İşlemleri
Doç. Dr. İrfan KAYMAZ
MATLAB Ders Notları
MATLAB’de GRAFİK İŞLEMLERİ
MATLAB diğer programlama dillerine nazaran oldukça güçlü bir
grafik araçkutusuna (toolbox)’a sahip olmasıdır.
MATLAB’de grafik çizebilmenin en kolay yollarından biri plot
komutunu kullanmaktır.
Örnek
y  x 2  9 x  20
Fonksiyonun herhangi bir aralıktaki grafiği aşağıda verilen
MATLAB komutlarını icrası ile elde edilebilir
x=1:20;
y=x.^2-9*x-20;
plot(x,y)
Matlab Ders Notları
GRAFİK DÜZENLEYEN KOMUTLAR
Bir grafikte aşağıda verilen tanımlamalar mevcut olmalıdır:
Grafiğin başlığı
Eksen takımlarının isimleri
Grafiğe bir isim, başlık vermek için title komutu kullanılır
X eksenine bir eksen ismi verilmesi için xlabel
Y eksenine bir eksen ismi verilmesi için ylabel komutu kullanılır
Örnek
x=[1:1:20];
y=x.^2-9*x-20;
plot(x,y)
title('x.^2-9*x-20 fonksiyonun grafigi');
xlabel('x ekseni');
ylabel('y ekseni');
Matlab Ders Notları
ÇOKLU GRAFİKLER
MATLAB’de tek bir grafik penceresinde birden fazla graifk
çizdirmek mümkündür.
Örnek2
y(t )  3t  5t  8
y(t )  6t  5
Fonksiyonu ile türevi olan
Fonksiyonun t’ye göre değişimlerini aynı
grafik üzerinde gösterebilmek için aşağıda
verilen MATLAB programı icra edilir:
t=[0:1:20];
y_1=t.^3-5*t+8;
y_2=6*t-5;
plot(t,y_1,t,y_2)
Matlab Ders Notları
uygulama
0 ila 2*pi arasındaki açı değerleri için sin(x) ve cos(x) fonksiyonlarını
aynı grafik penceresinde çizen bir MATLAB programı yazınız
Matlab Ders Notları
Eksen işaretlerinin ayarlanması
1
0.8
0.6
0.4
0.2
0
-0.2
x = -pi:.1:pi;
y = sin(x);
plot(x,y)
set(gca,'XTick',-pi:pi/2:pi)
-0.4
-0.6
-0.8
-1
-pi
-pi/2
0
pi/2
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'})
Matlab Ders Notları
pi
GRAFİKLERDE ÇEŞİTLİ DÜZENLEMELER
Elde edilen grafiklerde aşağıda belirtilen düzenlemeler
yapılabilir:
 çizgi rengi ve tipini değiştirmek
 x değişkeni ile fonksiyon değerinin kesişitiği noktaların
işaretlemek
Grafiklere açıklama eklemek
Plot(x,y,’r-’) şeklindeki bir komut ile x ve ye vektörlerinin grafik
çizgi renginin kırmızı ve düz bir çizgi olması sağlanmıştır
Matlab Ders Notları
Renk
İşaretleme Biçimi
Çizgi biçimi
Y: sarı
. : nokta
- : sürekli çizgi
M:magna
o : yuvarlak
: : nokta nokta
B:mavi
x : x işareti
-. : kesikli çizgi ve
nokta
R:kırmızı
+ :artı işareti
-- : kesikli çizgi
G:yeşil
* :yıldız işareti
W:beyaz
S : kare
D: elmas
V : aşağı üçgen
^ : yukarı üçgen
<: sola üçgen
>: sağa üçgen
P: beşgen
Matlab Ders Notları
Legend fonksiyonu ile hangi eğrinin hangi fonksiyona ait olduğu
belirtilir.
Örnek
x=[0:pi/10:4*pi];
y1=sin(x);
y2=cos(x);
plot(x,y1,'b.:',x,y2,'b<-')
xlabel('x degisimi');
ylabel('Fonksiyonun degisimi');
title('sinx ve türevinin değişimi')
legend('sin(x)','cos(x)',-1)
Matlab Ders Notları
Figure fonksiyonu ile çoklu grafikler
Birden fazla grafik penceresini açmak için figure(n) komutu kullanılır.
Burada n grafik penceresini belirtmektedir.
Örnek
x=0:pi/30:2*pi;
y1=sin(x);
y2=cos(x);
figure(1),plot(x,y1,'bo:')
figure(2),plot(x,y2,'r*-')
Matlab Ders Notları
Subplot fonksiyonu ile Alt Grafikler
Aynı grafik penceresinde birden fazla grafik çizmek için
subplot (a,b,c) fonksiyonu icra edilir. Burada
a: grafik penceresinin satır sayısı
b: grafik penceresinin sütün sayısı
c: alt pencere numarası
Matlab Ders Notları
Örnek
subplot(2,2,1)
x=0:pi/30:2*pi;
y1=sin(x);
plot(x,y1)
title('f(x)=sin(x)')
subplot(2,2,2)
y2=cos(x);
plot(x,y2)
title('f(x)=cos(x)')
subplot(2,2,3)
y3=tan(x);
plot(x,y3)
title('f(x)=tan(x)')
subplot(2,2,4)
y4=cot(x);
plot(x,y4)
title('f(x)=cot(x)')
f(x)=sin(x)
f(x)=cos(x)
1
1
0.5
0.5
0
0
-0.5
-0.5
-1
0
2
16
2
4
6
8
-1
5
1
0
0
-5
-1
0
2
4
2
15
f(x)=tan(x)
x 10
0
6
8
-10
6
8
6
8
f(x)=cot(x)
x 10
0
4
2
4
Matlab Ders Notları
Hold komutu
Aynı eksen takımında birden fazla grafik çizmek için hold komutu
kullanılır. Figure fonksiyonu kullanılmadığı sürece işletilen herbir
plot komutu aynı grafik penceresinde işlem görür.
Örnek
x=0:pi/30:2*pi;
y1=sin(x);
plot(x,y1,'k*:')
hold
y2=exp(2*sin(x));
plot(x,y2,'ro--')
legend('sin(x)','\bf{e}^{2*sin(x)}')
Matlab Ders Notları
Data Grafikleri
11%
Pasta Grafikleri: 2D
22%
x = [1 3 0.5 2.5 2];
explode = [0 1 0 0 0];
pie(x,explode)
colormap jet
33%
28%
11%
6%
22%
Explode ifadesi ile ilgili oran
pasta grafikten ayrılır.
33%
28%
6%
Matlab Ders Notları
Data Grafikleri
Pasta Grafikleri: 3D
x = [1 3 0.5 2.5 2]
explode = [0 1 0 0 0]
pie3(x,explode)
colormap hsv
22%
11%
28%
33%
6%
Matlab Ders Notları
Üç Boyutlu Grafikler
Çubuk Grafikleri: 3D
Y = [10 5 6 18 4 5];
X= [25 35 30 45 50 55]
Z=[X;Y]
bar3(Z,0.5)
60
40
20
6
0
5
4
1
3
2
2
1
Matlab Ders Notları
Üç Boyutlu Grafikler
Eş yükselti eğrileri
3
0
2.5
2
1.5
-0 .1
-0 .2
-0 .3
0.1
0.2
0.2
-0 .3
0.4
-0 .1
-0
.4
-0 .2
-0.5
-0.1
0
0
0.5
0.1
0.2
0.3
0.1
1
-0 .
2
[X,Y] = meshgrid(-2:.2:2,-2:.2:3);
Z = X.*exp(-X.^2-Y.^2);
[C,h] = contour(X,Y,Z);
clabel(C,h)
colormap cool
0.3
-1
0.1
0
-0.1
-1.5
-2
-2
-1.5
-1
-0.5
0
0.5
1
1.5
Matlab Ders Notları
2
Üç Boyutlu Grafikler
[X,Y] = meshgrid([-2:.25:2]);
Z = X.*exp(-X.^2-Y.^2);
contour3(X,Y,Z,30)
surface(X,Y,Z,'EdgeColor',[.8 .8 .8],'FaceColor','none')
grid off
view(-15,25)
colormap cool
0.4
0.2
0
-0.2
-0.4
2
0
-2
-2
-1.5
-1
-0.5
0
0.5
1
Matlab Ders Notları
1.5
2
Üç Boyutlu Grafikler
[X,Y] = meshgrid([-2:.25:2]);
Z = (X.^2-Y.^2);
meshc(X,Y,Z)
colormap cool
4
2
0
-2
-4
2
1
2
1
0
0
-1
-1
-2
-2
Matlab Ders Notları
Uygulamalar
x y
Uygulama 1: Yanda verilen dataları bir dosyadan okuyup
grafiğini çizen bir MATLAB programı yazınız
1 10
Uygulama 2: Aşağıda verilen fonksiyonu x:-4:4, y=-4:4
aralığında 3D olarak çiziniz.
5 15
z  x3  y3  cos( x * y)
3 13
8 16
9 18
Uygulama 3: Aşağıda verilen fonksiyonu x:-4:4, y=-4:4 aralığında 3D ve
eş yükselti eğrilerini bir grafik penceresinde birlikte gösteriniz (subplot).
z  x2  y 2
Matlab Ders Notları
Download

Ders Notu 7