Soru sorRandom bir matriste max değerini bulmak
miraya tarafından 6 yıl önce soruldu
A=10*rand(5,6);
[a0,b0]=max(A);
[a1,b1]=max(a0);

Burada max değer olan a1 değerini max ifadesi olmadan (for, if ile) nasıl yazabilirim?
Ve random olan A matrisinde max değerin hangi satır ve sütunda olduğunu nasıl gösterebilirim? Bu işlemi "max" ifadesi kullanmadan yazabilir miyim? 

1 Cevap
sayginer Yönetici tarafından 6 yıl önce cevaplandı

Yapmak istediginiz islem cok fazla is yuku gerektiriyor. Asagida sadece 1. sutun icin bu isi yapabilen ornegi inceleyebilirsiniz. Istediginiz mantiktaki kodu gelistirebilmek icin paylastigim ornekteki sutun numaralarini da for dongusu icerisine almalisiniz.
Kolay gelsin
 

  A=10*rand(5,6) %Rastgele bir matris olusturuyorum

[m n] = size(A); %Bu matrisin boyutunu aliyorum

sutun = 1; %Bunu simdilik 1 yaptim, Sadece 1. sutun icin yapiyorum. Ancak butun matrisi taramak icin bunu da tum sutunlar icin degistirmeliyim

EnBuyuk = A(1,1) %1. satir 1. sutunu en buyuk olarak kabul ettim
    for satir = 1:m-1; %Butun satirlari tek tek kontrol edecegim
        if  A(satir,sutun)> A(satir+1,sutun) %Benim varsayim enbuyuk degerim kosulu sagliyor mu? - 
            EnBuyuk = A(satir,sutun); %Eger n. satir n+1'den buyukse onu en buyuk deger yap
        else
            EnBuyuk = A(satir+1,sutun) %Eger n. satir n+1den buyuk degilse n+1'i en buyuk al
        end
    end