% Örnek : magic(5) satırların, sütunların ve köşegen elemanların toplamının eşit olduğu matristir.

M = magic(5)
sum(M)
sum(M,2)
sum(M')'
sum(diag(M))
trace(M)

% Soru:  Girilen değerin Mükemmel Sayı mı değil mi bulan kodu yazınız.
% Mükemmel sayı, kendisi hariç pozitif tam bölenlerinin toplamı kendisine eşit olan sayıdır.

for sayi=2:1000 
    bolenler = zeros(1,sayi);
    % mod 
    for i=1:sayi-1 
        if mod(sayi,i)==0 
            bolenler = [ bolenler   i  ];
        end
    end
    if sayi == sum(bolenler) 
        %disp('mükemmel sayidir' + sayi);
        fprintf(' %d sayisi mükemmel bir sayıdır', sayi );
    %else
     %   disp('mükemmel sayı değildir');
    end
end

%
% Örnek soru : verilen bir matrisin eleman sayısını bulunuz.

V = rand(5,4,3)
size(V)
length(V)
prod(size(V))
numel(V)
mean(mean(mean(V)))
mean(V(:))
sum(V(:))/numel(V)

[ 5 4 3 2 1 ]  > 2

%
% 50 ile 100 arasında 20 tane rastgele tam sayılardan oluşan bir R vektörü tanımlayınız.

round(rand(1,20)*50)+50
Z = randi([ 50 100] , 1, 20 )

% R vektörünün içindeki 75’den küçük sayıları negatifleri ile değiştirip,

konumlar = find(Z<75);
Z(konumlar) = Z(konumlar) * -1 

% 90’dan büyük sayıları R vektöründen silen,

Z(find(Z>90)) = [] 

% en büyük ilk elemanı vektörün birinci elamanı ile yer değiştiren MATLAB kodunu döngüleri kullanmadan yapınız.

Z=[ 2 30 50 100 30 20 100 50 60 100 ]
%max(Z)
%find(Z==max(Z))
%enbuyuk_eleman_indisi = find( Z == max(Z) ) ;
%tmp = Z(1)
%Z(1) = max(Z)
tmp = max(Z)
konumlar = find(Z==max(Z))
% matrisin eleman sayısı 1 den büyük ise ilk elemanı kullan.
Z(konumlar(1)) = Z(1);
Z(1) = tmp

%
% Üç basamaklı bir ABC sayısı için ABC=A^3+B^3+C^3 koşulunu sağlıyorsa, ABC sayısı bir amstrong sayısıdır. Örneğin; 153= 1^3+3^3+5^3 olduğu için 153 bir amstrong sayısıdır. Üç basamaklı tüm amstrong sayıları bir vektörde saklayan matlab kodunu yazınız?

for sayi = 100:999

    birler = mod(sayi, 10 ) ;
    onlar = floor( mod( sayi/10, 10) ) ;
    yuzler = floor( mod( sayi/100, 10) ) ;
    if sayi == birler^3 + onlar^3 + yuzler ^ 3 
        disp('armstrong sayıdır');
    end
end