Loop Examples

Kategori: MATLAB , 03 Ağustos 2019 , JanFranco


Bir önceki yazımda döngüleri anlattım. MATLAB ortamında döngü örnekleri yapalım. İki sayı alalım, mod() fonksiyonunu kullanmadan bölüm ve kalanı bulalım:


number1 = input('Bölünen: ');
number2 = input('Bölen: ');
number3 = 0;

while(number1 >= number2)
    
    number1 = number1 - number2;
    number3 = number3 + 1;
    
end

fprintf('Bölüm = %d Kalan = %d\n', number3, number1);
Bir matris tanımlayalım ve içerisini rastgele sayılar ile dolduralım. Daha sonra bu matristeki en büyük ve en küçük elementin toplamını bulalım:


matrix = zeros(4, 4);

for i=1:4
    for j=1:4
        matrix(i, j) = randi(100);
    end
end

minNumber = matrix(1, 1);
maxNumber = matrix(1, 1);

for i=1:4
    for j=1:4
        fprintf('%d%d. Process Max = %d Min = %d\n', i, j, maxNumber, minNumber)
        if(matrix(i, j) > maxNumber)
            maxNumber = matrix(i, j);
        elseif(matrix(i, j) < minNumber)
            minNumber = matrix(i, j);
        end
        
    end
end

fprintf('Minimum sayı + Maximum sayı = %d', (minNumber + maxNumber));
Burada zeros() fonksiyonu kendisine gönderilen parametre boyutunda, tüm elemanları 0 olan bir matris oluşturur. randi() fonksiyonu rastgele sayılar üretir. 1-100 arası, 3 ile bölünen sayıları mod() fonksiyonu kullanmadan bulalım:


for i=1:100
    sayi = i;
    j = 3;
    
    while(sayi >= j)
        sayi = sayi-j;
    end
    
    if(sayi == 0)
       disp(i);
    end
    
end
Bir string değerdeki ince ünlü, kalın ünlü ve ünsüz harflerin sayısını bulalım:


string = 'Jan Franco, JanFranco.com için içerik hazırlıyor.';

k = 0;
i = 0;
u = 0;
b = 0;

for a=1:length(string)
    
    switch string(a)
        case {'a', 'ı', 'o', 'u'}
            k = k + 1;
        case {'e', 'i', 'ö', 'ü'}
            i = i + 1;
        case ' '
            b = b + 1;
        otherwise 
            u = u + 1;
    end

end

fprintf('Kalınlar = %d Inceler = %d Bosluk = %d Unsuz = %d\n', k, i, b, u)
Kullanıcıdan bir sayı alalım. Bu sayının asal çarpanlarını bulalım:


number = input('Sayıyı girin: ');

for degisken=2:number-1
    
    if mod(number, degisken) == 0
        
        asal = true;
        
       for j=2:degisken-1
           
           if mod(degisken, j) == 0
               asal = false;
           end
           
       end
       
       if asal == true
               disp(degisken)
       end
        
    end
    
end
Son olarak rastgele bir matris oluşturalım. En düşük değeri, en yüksek değeri, en düşük değerin olduğu satırı ve en yüksek değerin olduğu satırı bulalım:


matrix = zeros(5, 5);

for i=1:5
    for j=1:5
        matrix(i, j) = randi(100);
    end
end

max = matrix(1, 1);
min = matrix(1, 1);
maxIndexSatir = 1;
minIndexSutun = 1;

for i=1:5
    for j=1:5
        if matrix(i, j) > max
            max = matrix(i, j);
            maxIndexSatir = i;
        elseif matrix(i, j) < min
            min = matrix(i, j);
            minIndexSutun = j;
        end
    end
end

fprintf('Max = %d Min = %d MaxSatir = %d MinSatir = %d\n', max, min, maxIndexSatir, minIndexSutun)


Sonraki Yazı: File Handling, Excel
Yorumlar

Henüz bir yorum bulunmuyor.
Yorum bırakın