Transcript Matlab 8

MATLAB’ de Programlama
VIII
(Dizilerle ilgili örnekler)
Hafta 8
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=
A=[1 3 0; 4 2 -3];
for i=1:2
1
4
3
2
0
-3
for j=1:3
B(j,i)=A(i,j);
end
end
B
Hafta 8
B =AT
1
3
0
4
2
-3
Matlab Ders Notları
Örnek 1
Beş işçinin 1 ay boyunca çalışma cetveli verilmiştir.
Ücret değerleri Milyon TL göstermektedir.
İŞÇİLER
1
2
3
4
5
Saat Ücreti 1.2
2
2.5
3
4.5
Çalışılan
saat
160
157
165
150
1250
1000
1200
1100
153
Ürün Adeti 1100
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.
Hafta 8
Matlab Ders Notları
Çözüm 1
saatucret = [ 1200000 2000000 2500000
csaat = [ 153
160
157
urun
= [ 1100
1250
1000
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
Hafta 8
3000000 4500000];
165
150
];
1200
1100 ];
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ıra
Vize
1. Öğrenci
35
40
37.5
2. Öğrenci
22
95
58.5
:
:
:
:
Hafta 8
Final Ortalama
Matlab Ders Notları
Çözüm 2:
for i=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');
for i=1:5
fprintf('%d. Öğrenci
%g
%g
%f\n', i, vize(i),
final(i),ort(i));
end
Hafta 8
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(' ');
if B(i,j) < 0
y(k)=B(i,j);
k=k+1;
end
end
end
y
Hafta 8
İ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
Hafta 8
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
Hafta 8
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
Hafta 8
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.
Hafta 8
Matlab Ders Notları