MATLAB Semineri EM 314 Kontrol Sistemleri 1 GÜMMF Elektrik-Elektronik Müh. Bölümü 30 Nisan / 1 Mayıs 2007
İçerik MATLAB Ekranı Değişkenler Operatörler Akış Kontrolü.m Dosyaları Çizim Komutları Yardım Kontrol Dersiyle ilgili komutlar
MATLAB Ekranı -Workspace tanımlı değişkenleri gösterir, değişkenlere çift tıklandığında Array Editor açılır - Command Window komut girişleri ve çıktılar için -History
DEĞİŞKENLER
Değişkenler MATLAB da değişken tipi tanımlamaya gerek YOKTUR. int a; double b; Değişkenler 32bit floating point (double precision) olarak oluşturulur. Tüm değişkenler 1x1 boyutlu matrisler olarak tanımlanır. Bu nedenle scalar işlemlerinin bir çoğu matrislere de uygulanabilir >> x=5; >> x1=2.333; Matlab büyük harf/küçük harf yazımlarına duyarlıdır >> A = 2; >> a = 7; A a
Vektörler ve Matrisler Satır vektörü x = [1 2 5 1] veya x = [1,2,5,1] x = 1 2 5 1 Sütun vektörü x = [1 ; 2 ; 5 ; 1] x = 1 2 5 1
Vektörler ve Matrisler Matris x = [1 2 3 ; 5 1 4] x = 1 2 3 5 1 4 Transpoz y = x y = 1 5 2 1 3 4
: operatörü kullanarak vektör/matris tanımlama >>k = 2:-0.5:-1 k = 2 1.5 1 0.5 0-0.5-1 >>t = 2:10 t = 2 3 4 5 6 7 8 9 10 >>M = [1:4; 5:8] M = 1 2 3 4 5 6 7 8
Matris İndeksleme Matris indeksleri 1 den başlar. (C/C++ daki gibi 0 dan değil!) Format: Matris_Adı (satır_no, sütün_no)
MATLAB fonksiyonları kullanarak Vektör oluşturma zeros(m,n) (0'lardan oluşan MxN boyunda matris) ones(m,n) (1 lerden oluşan MxN boyunda matris) rand(m,n) MxN boyunda random matris ((0,1) aralığında doğrusal dağılan) x = zeros(1,3) x = 0 0 0 x = ones(1,3) x = 1 1 1 x = rand(1,3) x = 0.9501 0.2311 0.6068
OPERATÖRLER
Aritmetik Operatörler + toplama - çıkartma * çarpma / bölme \ ters (soldan) bölme ^üs kompleks konjuge transpoz
A ve B: Toplama Çıkartma Çarpma Transpoz
Bölme Sağdan Bölme a / b = a b Soldan Bölme a \ b = b a Matrislerde; Sağdan bölme ; A/B = A*inv(B) Soldan bölme ; A\B = inv(a)*b
. operatörü Tüm aritmetik operatörlerin önüne. getirilerek işlemin eleman-eleman yapılması sağlanır. x = 1:3 y = [3 4-1] c = x.* y d = x. / y x= 1 2 3 y= 3 4-1 c= 3 8-3 d= 0.33 0.5-3 e = x.^2 e= 1 4 9 e = x^2??? Error using ==> ^ Matrix must be square.
Mantıksal Operatörler == Eşittir ~= Eşit değildir < > Küçüktür Büyüktür <= Küçük veya eşittir >= Büyük veya eşittir & VE VEYA
AKIŞ KONTROLÜ
Akış Kontrolü if for while break
if if (Condition_1) Matlab Commands-1 elseif (Condition_2) Matlab Commands-2 else Matlab Commands-3 end if ((a>3) & (b==5)) Matlab Commands; end if (a<3) Matlab Commands; elseif (b~=5) Matlab Commands; end if (a<3) Matlab Commands; else Matlab Commands; end
for for i=index_array end Matlab Commands for i=1:100 Matlab Commands; end for j=1:3:200 Matlab Commands; end for m=13:-0.2:-21 Matlab Commands; end for k=[0.1 0.3-13 12 7-9.3] Matlab Commands; end
while while (condition) end Matlab Commands while ((a>3) & (b==5)) Matlab Commands; end
.m DOSYALARI
.m dosyaları İki tip.m-dosyası bulunmaktadır; script script Matlab in arka arkaya uygulayabileceği komutların toplamı function beraberce bir fonksiyon, bir prosedür veya bir metot oluşturan komutların toplamı Yeni.m-dosyası
.m (script) RUN
.m (fonksiyon) Fonksiyonlar bazı giriş değerleri verilerek çağırılan ve çalışmasının sonunda istenilen değerleri programa geri dönebilen.m dosyalarıdır. Bir.m dosyasını fonksiyon haline getirebilmek için ilk satır şu şekilde olmalıdır; function fonksiyon_adı (in1) function out1= fonksiyon_adı (in1,in2,in3) function [out1,out2]= fonksiyon_adı (in1,in2) Fonksiyonlarda DOSYA ADI ve FONKSİYON ADI aynı olmalıdır!!!
Çizim Komutları
Grafik çizimi Temel 2D çizim komutları >>plot(x1,y1[,x2,y2,x3,y3...]) >>xlabel( x ekseni adı ) >>ylabel( y ekseni adı ) >>title( grafik başlığı ) yardımcı komutlar >>grid on / off >>hold on / off >>axis ([xmin,xmax,ymin,ymax])
Örnek: sin(t).(1-e (-t/10) ) t = 0 : 0.05 : 10*pi; f1 = sin(t); f2 = 1-exp(-t/10); f=f1.*f2; plot(t,f)
Örnek: sin(t).(1-e (-t/10)) t = 0 : 0.05 : 10*pi; f1 = sin(t); f2 = 1-exp(-t/10); f=f1.*f2; plot(t,f) grid xlabel('x ekseni') ylabel('y ekseni') title('sin(t).(1-exp(-t/10))')
Örnek: sin(t).(1-e (-t/10)) t = 0 : 0.05 : 10*pi; f1 = sin(t); f2 = 1-exp(-t/10); f=f1.*f2; plot(t,f) grid xlabel('x ekseni') ylabel('y ekseni') title('sin(t).(1-exp(-t/10))') hold plot (t, f2, -r')
Örnek: sin(t).(1-e (-t/10)) t = 0 : 0.05 : 10*pi; f1 = sin(t); f2 = 1-exp(-t/10); f=f1.*f2; plot(t,f) grid xlabel('x ekseni') ylabel('y ekseni') title('sin(t).(1-exp(-t/10))') hold plot (t, f2, -r') axis([0 10*pi -2 2]);
subplot subplot (2,1,1) plot(t,f) ; xlabel('x ekseni') ; ylabel('y ekseni') ; grid on subplot (2,1,2) plot(t,f2,'r') ; xlabel('x ekseni') ; ylabel('y ekseni')
Yardım >>help >>lookfor Online Help The Mathworks (web)/support/solutions (www.mathworks.com)