Fen ve Mühislik Uygulamaları ile MATLAB Doç. Dr. M. Akif CEVİZ Atatürk Üniversitesi Mühislik Fakültesi Makine Mühisliği Bölümü
MATLAB de Diziler; Vektörler ve MAtrisler
Skaler, Dizi, Matrix Sklaer, bir adet sayı değerine sahip değişkir. Diziler, birden fazla değer barındıran değişkenlerdir. İki boyutlu diziler, iki boyutlu rakam tablolarıdır, diğer adleri matrixlerdir. Dizi indeksi veya adresleme, dizi içerisindeki bir sayının yerini ifade etmede kullanılır.
Vektör diziler A 23 45-1 1.24 78 A(1) A(2) A(3) A(4) A(5) Dizinin elemanları alt simgeler ile çağrılır, Örneğin A(1) birinci elemanı, A(5) beşinci elemanı göstermektedir. Parantez içerisindeki rakam indeks, adres veya dizideki elemanın yerini belirtmede kullanılır. Bir vektör elemanı, parantez içerisine yazılan tam sayı olan indeksle (veya alt simge) çağrılabilir.
Matrix Diziler Matrix dizileri iki boyutludur, hem satırları hem de sütunları vardır. 1 2 3 1 2 3 4 23 12 75 48 3 36 15 12 45 4 55 13 B(1,1)=23, B(1,2)=12, B(1,3)=75, B(1,4)=48 B(2,1)=3, B(2,2)=36, B(2,3)=15, B(2,4)=12 B(3,1)=45, B(3,2)=4, B(3,3)=55, B(3,4)=13 2. satırdaki ve 3. sütundaki elemana ulaşmak için B(2,3 kullanılmalıdır. Parantez içerisindeki ilk rakam satır sayısını, ikinci rakam (virgülden sonra) sütun sayısını göstermektedir.
Vektör Oluşturma Bir vektör, elemanlarının iki parantez arasında girilmesi ile doğrudan üretilebilir, elemanları birbirinden ayırmak için boşluk veya virgül kullanılır. Klavyeden giriş for i=1:5 fprintf('a(%d)=',i) A(i)=input(' '); A Doğrudan giriş A = [1 3-34 0 5] veya A=[1, 3, -34, 0, 5]
Örnek 1 Vektör eleman sayısının dışarıdan girildiği ardından vektörün elemanlarının birer birer girildiği son olarak elemanların karelerinin toplamının bulunduğu bir Matlab programı yazınız. N=input( Vektör eleman sayısını giriniz= ); t=0; for i=1:n fprintf('a(%g)=',i); A(i)=input(''); for i=1:n t=t+a(i)*a(i); fprintf( Sonuç=%g', t)
Matris Oluşturma Bir matris elemanlarını iki köşeli parantez arasında aralarında boşluk veya virgül kullanılarak oluşturulabilir. Matrisin satırları noktalı virgül ile ayrılmalıdır. Klavyeden giriş for i=1:2 for j=1:3 fprintf('b(%g,%g)=',i,j) B(i,j)=input(' '); B Doğrudan giriş B = [1 3-34 ; 0 5 4 ; -5 9 7] veya B=[1, 3, -34 ; 0, 5, 4 ; -5, 9, 7]
Örnek 2 Elemanları 0 dan başlayan ve 50 ye kadar 4 erli artan bir vektör üreten Matlab programı yazınız.
Dizi İşlemleri Bir dizinin skaler ile toplama, çıkarma, çarpma ve bölme işlemleri İki dizi aynı boyutta ise toplama, çıkarma, çarpma ve bölme işlemleri eleman-eleman şeklinde gerçekleştirilir.
Bir skaler ile çarpma Aşağıdaki A matrisini 2 ile çarpan Matlab programı yazınız. A 2 1 3 4 A=[2 3 ; 1 4]; for i=1:2 for j=1:2 C(i,j)=2*A(i,j); C veya A=[2 3 ; 1 4]; C=2*A
Örnek 3 Yalnızca ikinci sütununu 3 ile çarpan bir Matlab programı yazınız. A=[1 3; 4 2]; for i=1:2 for j=2:2 A(i,j)=3*A(i,j); A
Toplama ve Çıkarma İki dizi aynı boyutta ise toplanabilir veya çıkarılablilir. 2 A 1 C 3 4 İki matrisin toplanması 2 1 3 6 4 0 6 B 0 1 5 1 5 8 2 1 9 A=[2 3 ; 1 4]; B=[6-1 ; 0 5]; for i=1:2 for j=1:2 C(i,j)=A(i,j)+B(i,j); C veya C=A+B
Bazı Dizi Komutları max(a) min(a) A [2 3 5 6] sum(a) mean(a) length(a) size(a) A(:,1) A(1,:) A 2 1 3 4
Örnek 4 Aşağıdaki tablo 5 adet işçinin bir aylık çalışma programını göstermektedir. Saat ücreti (TL) Çalışma saati Ürün sayısı İşçiler 1 2 3 4 5 1.2 2 2.5 3 4.5 153 160 157 165 150 1100 1250 1000 1200 1100 a) Her bir işçi bir ayda ne kadar para kazanır? b) Bir ayda işçilere ödenen toplam para ne kadardır? c) Toplam ürün sayısı nedir? d) Bir ürünün ortalama maliyeti nedir? e) Her bir işçinin üretkenliğini karşılaştırınız.
Matris transpozu Matris transpozu, matrisin satırları ile sütunlarının yer değiştirilmesi ile üretilir. Diğer bir deyişle transpozu alınan matris, verilen matrisin satırlarının sütun haline getirildiği matristir. A=[1 3 0; 4 2-3]; for i=1:2 for j=1:3 B(j,i)=A(i,j); B >> A=[1 3 0; 4 2-3]; >> B=A' B = 1 4 3 2 0-3
Örnek 5 5 öğrencinin vize ve final notlarını dışarıdan alan ve aşağıdaki tabloyu üreten Matlab programı yazınız. Öğrenciler Vize Final Ortalama 1. Öğrenci 35 40 37.5 2. Öğrenci 22 95 58.5 : : : :
Önümüzdeki hafta MATLAB de Diziler; Vektörler ve Matrisler Matlab da grafik oluşturma