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 9x Fonksiyonun herhangi bir aralıktaki grafiği aşağıda verilen MATLAB komutlarını icrası ile elde edilebilir x=1:; y=x.^-9*x-; plot(x,y)
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:]; y=x.^-9*x-; plot(x,y) title('x.^-9*x- fonksiyonun grafigi'); xlabel('x ekseni'); ylabel('y ekseni');
ÇOKLU GRAFİKLER MATLAB de tek bir grafik penceresinde birden fazla graifk çizdirmek mümkündür. Örnek y( t) 3t 5t y ( t) 6t 5 8 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=[:1:]; y_1=t.^3-5*t+8; y_=6*t-5; plot(t,y_1,t,y_)
uygulama ila *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
Eksen işaretlerinin ayarlanması x = -pi:.1:pi; y = sin(x); plot(x,y) set(gca,'xtick',-pi:pi/:pi) set(gca,'xticklabel',{'-pi','-pi/','','pi/','pi'}) 1.8.6.4. -. -.4 -.6 -.8-1 -pi -pi/ pi/ 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
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 W:beyaz * :yıldız işareti S : kare D: elmas V : aşağı üçgen ^ : yukarı üçgen <: sola üçgen >: sağa üçgen P: beşgen
Legend fonksiyonu ile hangi eğrinin hangi fonksiyona ait olduğu belirtilir. Örnek x=[:pi/1:4*pi]; y1=sin(x); y=cos(x); plot(x,y1,'b.:',x,y,'b<-') xlabel('x degisimi'); ylabel('fonksiyonun degisimi'); title('sinx ve türevinin değişimi') legend('sin(x)','cos(x)',-1)
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=:pi/3:*pi; y1=sin(x); y=cos(x); figure(1),plot(x,y1,'bo:') figure(),plot(x,y,'r*-')
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ı
Örnek subplot(,,1) x=:pi/3:*pi; y1=sin(x); plot(x,y1) title('f(x)=sin(x)') subplot(,,) y=cos(x); plot(x,y) title('f(x)=cos(x)') subplot(,,3) y3=tan(x); plot(x,y3) title('f(x)=tan(x)') subplot(,,4) y4=cot(x); plot(x,y4) title('f(x)=cot(x)') 1.5 -.5 f(x)=sin(x) -1 4 6 8 x 116 f(x)=tan(x) 1-1 4 6 8 1.5 -.5 f(x)=cos(x) -1 4 6 8 5 x 115 f(x)=cot(x) -5-1 4 6 8
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=:pi/3:*pi; y1=sin(x); plot(x,y1,'k*:') hold y=exp(*sin(x)); plot(x,y,'ro--') legend('sin(x)','\bf{e}^{*sin(x)}')
Data Grafikleri Pasta Grafikleri: D 11% % x = [1 3.5.5 ]; explode = [ 1 ]; pie(x,explode) colormap jet 33% 8% 11% % 6% 33% Explode ifadesi ile ilgili oran pasta grafikten ayrılır. 8% 6%
Data Grafikleri Pasta Grafikleri: 3D x = [1 3.5.5 ] explode = [ 1 ] pie3(x,explode) colormap hsv % 11% 8% 33% 6%
Üç Boyutlu Grafikler Çubuk Grafikleri: 3D Y = [1 5 6 18 4 5]; X= [5 35 3 45 5 55] Z=[X;Y] bar3(z,.5) 6 4 1 1 3 4 5 6
-.1 Üç Boyutlu Grafikler Eş yükselti eğrileri [X,Y] = meshgrid(-:.:,-:.:3); Z = X.*exp(-X.^-Y.^); [C,h] = contour(x,y,z); clabel(c,h) colormap cool 3.5 1.5 1.5 -.1 -. -.3.1.3..1 -.1 -.4.4.1 -. -.5 -.3 -...3-1 -1.5 -.1.1. - - -1.5-1 -.5.5 1 1.5
Üç Boyutlu Grafikler [X,Y] = meshgrid([-:.5:]); Z = X.*exp(-X.^-Y.^); contour3(x,y,z,3) surface(x,y,z,'edgecolor',[.8.8.8],'facecolor','none') grid off view(-15,5) colormap cool.4. -. -.4 - - -1.5-1 -.5.5 1 1.5
Üç Boyutlu Grafikler [X,Y] = meshgrid([-:.5:]); Z = (X.^-Y.^); meshc(x,y,z) colormap cool 4 - -4 1-1 - - -1 1
Uygulamalar Uygulama 1: Yanda verilen dataları bir dosyadan okuyup grafiğini çizen bir MATLAB programı yazınız Uygulama : Aşağıda verilen fonksiyonu x:-4:4, y=-4:4 aralığında 3D olarak çiziniz. z x 3 y 3 cos( x* y) x y 1 1 3 13 5 15 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 x y