Nedim TUTKUN Elektrik Elektronik Mühendisliği Bölümü
1
MATLAB İLE
PROGRAMLAMAYA
GİRİŞ
5. Hafta Ders İçeriği
Çizgi ve Yüzey Grafik Çizimleri
plot Komutu
plot (x,y) iki boyutlu grafik çiziminde kullanılır.
Bu komut ile x değişkenini y değişkenine karşı gösteren bir
grafik oluşturur.
• Eğer x ve y matris şeklinde veriler ise, bu durumda plot
komutunun yapacağı iş önce ilk sütunları karşılaştırmalı
çizmek ve sonra bu durumu her bir sütun için tekrar
etmektir.
• Grafiğini çizeceğimiz x ve y matrislerinin boyutları eşit
olmalıdır. Aksi taktirde matlab boyut uyuşmazlığı hatası
vereceği unutulmamalıdır.
3
Örnek: u(t) = 2Sin(ωt) sinyalini 0.01
adımlarla, 0 ile 10 sn zaman dilimi için
çiziniz? Not: ω = 1
4
0.01 artışlar ile 0 – 10 sn zaman diliminin tanımlanması
Grafiğin y eksenini oluşturacak u(t) sinyalinin tanımlanması
Grafiğin çizdirilmesi
Grafiklere ve Eksenlere İsim Verilmesi
Çizdirilen grafiklerin daha anlamlı olması için, grafiklere
başlık ve x ile y eksenine de isim verilmesi gerekir.
• title ( ' Grafiğin başlığı ' )
• xlabel ( ' x ekseninin etiketi ' )
• ylabel ( ' y ekseninin etiketi ‘ )
5
Önceki örnek çizdirilen grafik üzerinde isim verilmesi:
6
Grafik içinde herhangi bir yere metin eklemek için,
text(x,y,‘yazılacak metin’) komutunu kullabiliriz. x ve y
metinin yazılacağı koordinatları göstermektedir.
Koordinat girmeden yazılmak isteniyorsa, gtext(‘yazılacak
metin’) komutu ile grafik çizildikten sonra fare ile metnin
yeri belirlenebilir.
7
Grafiklere ve Eksenlere İsim Verilmesi
Grafik Başlık ve Eksen İsimlerinin Boyutlandırılması
Bazı durumlarda eksen ve başlık isimlerinin daha koyu
yazdırılması istenebilir. Bu durumda yazının büyüklük ayarı
değiştirilmelidir.
• fontsize ( ' istenen punto ‘ )
8
Çizgi Kalınlığının Değiştirilmesi
9
Grafiğimizin daha belirgin olması için 'linewidth‘ komutu
ile grafik çizgimizin kalınlığını ayarlayabiliriz.
• plot(t,u,'linewidth',3) %Çizgi kalınlığını 3 yapacaktır.
Çizgi Kalınlığının Değiştirilmesi
plot komutu grafikleri düz çizgi ile çizer. Farklı türde,
renkte, veya işaretlerle grafik çizilmek isteniyorsa,
istenilenler plot komutu içirisinde yazılmalıdır.
plot(x,y, 'ab', 'linewidth’,3)
• x: x eksenine ait vektör
• y: y eksenine ait vektör
• a: çizimde kullanılacak çizgi/işaret/renk tanımlaması
• b: çizimde kullanılacak çizgi/işaret/renk tanımlaması
10
Grafik Çizgi-İşaret Stillerinin Değiştirilmesi
• plot komutu ile grafikler düz çizgi tarzındadır.
• Farklı türde çizgi ve işarete sahip grafik çizdirmek için
plot(x,y,‘c’) komutu kullanılmalıdır.
11
Çizgi Çeşidi MATLAB’de karşılığı
Düz çizgi -
İki noktalı :
Kesikli çizgi --
Kesikli noktalı -.
Çizimde kullanılacak çizgi/renk tanımlaması
y eksenine ait vektörel ifade
x eksenine ait vektörel ifade
12
Kullanılan İşaretler
Birden fazla çizim aynı eksen üzerinde çizdirilmek istenirse
birbirine karışmaması için çeşitli yöntemler kullanılabilir. Bunlardan
bir tanesi çizgi şeklinin değiştirilmesidir. Diğer yöntem ise çizgilerin
renklerinin değiştirilmesidir.
Renk MATLAB’de karşılığı
Koyu mavi c
Mor-kırmızı m
Sarı y
Kırmızı r
Yeşil g
Mavi b
Beyaz w
Siyah k
«
Grafik çiziminde nokta gösterimleri
13
Sembol MATLAB’de karşılığı
. ●
o ○
x ×
+ +
* *
s □
d ◊
v
^ Δ
<
>
p ☆
Δ
Δ
Δ
Örnek: plot komutu ile kesik çizgili ve daire işaretlerine
sahip grafik çizimi.
14
Figure penceresindeki ‘Edit’ sekmesinden de grafik
özellikleri ile ilgili ayarlamalar yapılabilir.
15
Örnek
t = -5:0.1:5;
y = sin(2*t);
plot(t,y,'-.r','linewidth',3)
title ( ' y(t) = sin2t fonksiyonunun [-5 5]
aralığındaki değişimi ','fontsize', [14] )
xlabel ( ' zaman (s) ','fontsize', [14] )
ylabel ( ' y(t) ','fontsize', [14] )
legend('sin2t')
text(-1.8,0.75,'sin2t grafiği','fontsize', [14])
axis([-4.5 4.5 -1.2 1.2])
grid
16
17
Tek pencerede birden fazla grafik çizimi:
Tek bir figure içerisinde farklı özelliklere sahip birden
fazla grafik çizdirilmesi istenirse,
plot(x1,y1, ‘c1’,x2,y2,‘c2’, … , xn,yn,‘cn’)
18
«
n’inci grafiğe ait çizgi ve renk çeşidi
n’inci grafiğe ait vektörel ifadeler
2. grafiğe ait çizgi ve renk çeşidi
2. grafiğe ait vektörel ifadeler
1. grafiğe ait çizgi ve renk çeşidi
1. grafiğe ait vektörel ifadeler
Örnek: Aşağıda belirtilen işlemleri bir m.file içerisinde yapınız.
u1(t)= 10sin(ωt) ve u2(t)= 7cos(ωt) iki ayrı sinyali tanımlayınız. ω=
2 rad/sn
Sinyallerin iki (2) periyotluk değişimlerini tek bir grafik üzerinde
karşılaştırınız.
19
% Grafik çiziminde kullanılacak u1(t) ve u2(t) sinyallerinin
2*T’ye göre tanımlanması
w = 2;
T = 2*pi/w;
t = linspace(0,2*T);
u1 = 10*sin(w*t);
u2 = 7*cos(w*t);
% Grafik çiziminin tek plot komutu ile gerçekleştirilmesi
plot(t,u1,'-b',t,u2, '-.r', 'linewidth',3)
% Grafik üzerinde eksen açıklamalarının yapılması
xlabel ('Zaman (s)','fontsize',14)
ylabel('u_1(t) ve u_2(t)','fontsize',14)
title('u_1(t) ve u_2(t) sinyallerinin 2T zaman dilimindeki
değişimi','fontsize',14)
20
Figures Penceresinde Mevcut Eğriye Yeni Eğriler
Eklenmesi
MATLAB’de hold komutu kullanılarak mevcut eğriye (aynı
pencere içinde) yeni eğriler eklenebilir.
21
Komut Açıklama
hold on Mevcut olan eğrileri tutarak yeni çizim komutları ile çizilecek yeni eğrileri aynı eksen takımına ilave eder. Eğer ilave edilecek yeni eğrilerin eksen boyutları etkisi ile uyumsuz ise eksen takımı otomatik olarak yeniden boyutlandırılır.
hold off Eski eğrileri korumadan en son çizdirilen eğriyi muhafaza eder. hold on komutunun uygulanışını iptal eder.
grid on Mevcut çizim ekranını ızgara şeklindeki ekrana dönüştürür.
grid off Izgara ekranını iptal ederek ilk (default) şekline geri döndürür.
grid Eğer ortamda grid on geçerli ise bunu grid off’a, grid off geçerli ise grid on’a dönüştürür.
hold on komutu ile tek bir figürde birden fazla grafik
çizimi
Önceki örnekte elde edilen çizimi sıra ile elde
ederek tek bir grafikte gösterelim.
• İlk önce u1(t) sinyali çizdirilir.
• hold on komutu çizdirilmiş grafiğin figür
penceresinde tutulmasını sağlar.
• hold on komutu kullanıldıktan sonra
çizdirilen grafik aynı figüre eklenir.
• hold on komutunu iptal etmek için hold off
kullanılır.
22
Örnek
23
Aynı pencerede birden fazla grafik çizimi:
Aynı pencerede birden fazla grafiği ayrı ayrı görmek
istiyorsak, pencereyi parçalara bölmek ve çizeceğimiz
grafiği, hangi parçaya çizdirmek istediğimizi belirtmemiz
gerekir. Bunun için kullanılan komut subplot komutudur.
subplot ( a, b, c)
a: satır sayısı
b: sütun sayısı
c: çizimin yapılacağı parça numarası
24
Örnek
25
t = -5:0.1:5;
y = sin(2*t);
subplot (2,2,2)
plot(t,y,'-.r','linewidth',3)
title ( ' y(t) = sin2t fonksiyonu ')
xlabel ( ' zaman (s) ')
ylabel ( ' y(t) ')
legend('sin2t')
text(-1.8,0.75,'sin2t grafiği')
axis([-4.5 4.5 -1.2 1.2])
grid
fplot komutu
Bir fonksiyona ait grafiğin tanımlanan sınır değerlerine
göre (x1 ve x2 aralığında) çizimini yapar.
fplot (‘F’, [x1, x2])
F: sembolik olarak fonksiyonun tanımlanması
x1: x ekseninde istenen ilk sınır değeri
x2: x ekseninde istenen son sınır değeri
26
• Plot komutunda olduğu gibi fplot komutunda çizgi çeşidi
ve rengi değiştirilebilir.
• Ayrıca tanımlanan x1 ve x2 aralığındaki örnekleme
adedinin tanımlanacak bir tolerans değeri ile
değiştirilmesine imkan tanır.
• fplot(‘F’,[x1x2],tol,‘çri’)
• çri: Çizgi çeşidi, rengi ve işaretleme çeşidi
• tol: Tanımlanan tolerans değeri
27
Örnek
28
𝐹 𝑥 = 𝑥3 + 2𝑥 + 1 fonksiyonuna ait 0 - 5 sn aralığındaki
değişimini düz çizgili, kırmızı renkli ve kare işaretli olarak
çizdiren programı yazınız?
ezplot komutu
fplot komutu gibi bir fonksiyona ait grafiğin tanımlanan sınır
değerlerine göre (x1 ve x2 aralığında) çizimini yapar.
ezplot (‘F’, x1,x2)
F: sembolik olarak fonksiyonun tanımlanması
x1: x ekseninde istenen ilk sınır değeri
x2: x ekseninde istenen son sınır değeri
29
fplot’un kullanımından farklı olarak fonksiyonda
kullanılan sembol syms komutu ile önceden
tanımlanabilir.
syms fonksiyondaki değişkene ait sembolik ifade
ezplot(‘F’,x1,x2)
veya
ezplot(‘F’,[x1x2])
30
Örnek
𝐹 𝑥 = 𝑥3 + 2𝑥 + 1 fonksiyonuna ait 0 -5 sn aralığındaki
değişimini çizdiren programı yazınız?
31
axis komutu ile eksen ölçeklendirme
Grafiğe ait eksen ölçeklendirmesini istenilen değerlere
göre yeniden düzenler.
axis ( [xmin xmak ymin ymak] )
ymak: y ekseninin maksimum sınır değeri
ymin: y ekseninin minimum sınır değeri
xmak: x ekseninin maksimum sınır değeri
xmin: x ekseninin minimum sınır değeri
32
• Örnek: u(t) = 2Sin(ωt) sinyalini 0.01 adımlarla, 0 ile 10
sn zaman dilimi için çiziniz? Not: ω = 1
33
Ardından grafiğin x eksenini 0 - 12, y eksenini ise -3 ile +3
olarak yeniden ölçeklendiriniz.
34
legend Komutu
Tanımlanan konuma göre figür penceresi üzerinde bir kutu
açarak çizim sırasına göre ilgili grafiklerde kullanılan çizim
şekli ve rengi göstererek açıklama yazılmasını sağlar.
legend (‘açıklama 1’, ‘açıklama 2’, konum)
açıklama 1: 1. grafiğe ait açıklama
açıklama 2: 2. grafiğe ait açıklama
konum: figüre penceresindeki konum
35
Konumu belirten sayısal değerler
36
Konum tanımlaması Açıklama kutusunun konumu
0 Grafik penceresine otomatik olarak yerleştirilir
1 Grafik penceresinin sağ üst köşesine yerleştirilir
2 Grafik penceresinin sol üst köşesine yerleştirilir
3 3 Grafik penceresinin sol alt köşesine yerleştirilir
4 Grafik penceresinin sağ alt köşesine yerleştirilir
-1 1 Grafik penceresinin dışında sağ üst köşeye yerleştirilir
Örnek:
37
ginput komutu
• Grafik üzerinde fare vasıtasıyla belirtilen nokta veya
noktaların koordinatlarını komut penceresinde sayısal
olarak elde etmeyi sağlar.
• Bu komutun kullanılabilmesi için figür penceresinin açık
olması gerekir.
• Komutun kullanımı ile figür penceresi üzerinde farenin
hareketine görekonum değiştiren eksenlere paralel iki
adet doğru parçası görünür. Doğru parçalarının kesişim
noktaları istenilen pozisyona getirildiğinde fare
vasıtasıyla tıklandığı zaman o noktaya ait koordinatların
komut penceresinde sayısal olarak ortaya çıkar.
ginput(n)
n: grafik üzerinde işaretlenecek nokta sayısı 38
Örnek:
39
Karmaşık Bir Sayının Kartezyen Koordinatlarda Çizimi
40
pie komutu
pie(x)
x: pasta grafikteki her bir dilime ait yüzdeyi içeren matris
41
Grafiklere Sembol Ekleme
42
43
Yararlanılan Kaynaklar
C. Bayılmış, Sayısal Analiz, Ders Notları, Sakarya.
M. A. Üstüner, Matlab’da 2-boyutlu Grafik Çizimi, Ders Notları,
Manisa, 2017.
İ. Kaymaz, Bilgisayar Programlama MATLAB, Ders Notları, Erzurum,
2010.
B. R. Hunt, R. L. Lipsman, J. M. Rosenberg, A Guide to MATLAB for
Beginners and Experienced Users.
U. Arifoğlu, MATLAB 9.1 Simulink ve Mühendislik Uygulamaları, 1.
baskı, 2016.
M. Coşar, MATLAB, Ders Notları, Çorum.
A. Dumlu, Bilgisayar Programlama, Ders Notları, Erzurum.
44