110 likes | 427 Views
M ATLAB ’ de P rogramlama VIII (Dizilerle ilgili örnekler). Matlab Ders Notları. Matrislerde Tranzpoz İşlemi. Transpoz, matrislerde satır ile sütunun yer değiştirilmesi işlemidir. Yani A=3x2’lik birmatrisin transpozu alındığı zaman B=A T =2x3’lük bir matris elde edilir. A =
E N D
MATLAB’ deProgramlama VIII (Dizilerle ilgili örnekler) Matlab Ders Notları
Matrislerde Tranzpoz İşlemi Transpoz, matrislerde satır ile sütunun yer değiştirilmesi işlemidir. Yani A=3x2’lik birmatrisin transpozu alındığı zaman B=AT=2x3’lük bir matris elde edilir. A = 1 3 0 4 2 -3 A=[1 3 0; 4 2 -3]; for i=1:2 for j=1:3 B(j,i)=A(i,j); end end B B =AT 1 4 3 2 0 -3 Matlab Ders Notları
Örnek 1 Beş işçinin 1 ay boyunca çalışma cetveli verilmiştir. Ücret değerleri Milyon TL göstermektedir. a) Her bir işçi bir ayda ne kadar para kazanmıştır? b) İşverenin bu aya ait toplam maaş ödemesi kaç liradır? c) Ne kadar ürün üretilmiştir? NOT: Saat ücretleri, çalışılan saat ve ürün adeti bir dizi olarak oluşturulacak. Matlab Ders Notları
Çözüm 1 saatucret = [ 1200000 2000000 2500000 3000000 4500000]; csaat = [ 153 160 157 165 150 ]; urun = [ 1100 1250 1000 1200 1100 ]; uruntoplam = 0; odenenmaas = 0; for i=1:5 maas(i) = saatucret(i)*csaat(i); uruntoplam = uruntoplam+urun(i); odenenmaas = odenenmaas+ maas(i); fprintf('%d. işçinin maaşı=',i); disp(maas(i)) end uruntoplam odenenmaas Matlab Ders Notları
Örnek 2: 5 öğrencinin 1 dersten aldıkları vize ve final notlarını alarak herbir öğrencinin ortalamalarını hesaplayan ve aşağıdaki formata göre yazdıran programı yazınız. SıraVizeFinalOrtalama 1. Öğrenci 35 40 37.5 2. Öğrenci 22 95 58.5 : : : : Matlab Ders Notları
Çözüm 2: fori=1:5 fprintf('%d. öğrencinin vize notu=', i); vize(i)=input(' '); fprintf('%d. öğrencinin final notu=', i); final(i)=input(' '); ort(i)=(vize(i)+final(i))/2; end fprintf('sıra vize final ortalama\n'); fprintf('==== ==== ===== ========\n'); fori=1:5 fprintf('%d. Öğrenci %g %g %f\n', i, vize(i), final(i),ort(i)); end Matlab Ders Notları
Örnek 3: 3x2 boyutunda bir B matrisinin elemanları okutularak bu matrisin sıfırdan küçük elemanlarını tek boyutlu bir y dizisine aktaran programı yazınız. k=1; for i=1:3 for j=1:2 fprintf( ’B(%d,%d)=’ ,i , j) B(i,j)=input(' '); ifB(i,j) < 0 y(k)=B(i,j); k=k+1; end end end y İki boyutlu dizinin elemanlarının girişi (okutulması) Matlab Ders Notları
Örnek 4: 2x3 boyutunda bir A (A=[-4 0 9 ; 16 -9 4]) matrisinin elemanları program içerisinde girilerek bu matrisdeki sayıların ortalamasını ve pozitif sayıların karekökleri toplamını bulan programı yazınız. A=[-4 0 9 ; 16 -9 4]; koktoplam=0; toplam=0; for i=1:2 for j=1:3 toplam=toplam+A(i,j); if A(i,j) > 0 koktoplam=koktoplam+sqrt(A(i,j)); end end end ortalama=toplam/(i*j) koktoplam Matlab Ders Notları
Örnek 5: B=[-45 0 5 10 -91 2] dizisinin elemanlarını tersten yazdırarak başka bir diziye aktaran programı yazınız. B=[-45 0 5 10 -91 2]; k=6; for i=1:6 C(k)=B(i); k=k-1; end C Matlab Ders Notları
Örnek 6: K=[-4 3 0 ; 2 0 4 ] matrisindeki sıfırların sayısını ve yerini (satır ve sütun numaralarını) veren programı yazınız. K=[-4 3 0 ; 2 0 4 ]; adet=0; for i=1:2 for j=1:3 if K(i,j)==0 adet=adet+1; i,j end end end adet Matlab Ders Notları
Ödev: A=[0 -2 8 9 16 7] dizisi veriliyor. Bu dizinin en küçük ve en büyük elemanlarını bulan programı yazınız. Not: A dizisinin en büyük ve en küçük elemanları iki ayrı FOR döngüsü içinde bulunacaktır. Matlab Ders Notları