Soru sorfor döngüsüyle bir matrisin elementlerini tek tek incelemek
gayeportakaldali tarafından 5 yıl önce soruldu

Bir matrisin ( örneğin 3×2 lik bir matris) for döngüsü kullanarak her bir elementinin sıfırdan küçük veya büyük olup olmadığını nasıl anlayabilirim? Şimdiden teşekkür ederim.

7 Cevap
sayginer Yönetici tarafından 5 yıl önce cevaplandı

Merhaba,
Aşağıdaki bir matrisin elementlerini sıfırdan bütük veya küçük diye sıralayan bir örnek bırakıyorum. İnceleyebilirsiniz.

A=randi([-30 30],3,4) %Rastgele 3e 4luk bir matris olusturalim

% Buradaki sayaclari degerleri ayirmak icin kullaniyoruz
EksiSayaci = 1;
ArtiSayaci = 1;
for i=1:3      %Satırlarda dolasmak için i indisi
    for j =1:4 %Sutunlarda dolasmak için j indisi
        if A(i,j) < 0; %Ornegin bir eleman negatifse Eksi elemanlar matrisine yaziyoruz
            EksiElemanlar(EksiSayaci) = A(i,j);
            EksiSayaci = EksiSayaci+1; %Eksi sayaci ilk 1 ile basliyor yani ust satirdaki eksi elemanlar vektorunun birinci kutusuna yaziyor
            %gelecek sefer ikinci jutuya yazmasi icin 1 arttiriyoruz.
        else
            ArtiElemanlar(ArtiSayaci) = A(i,j);
            ArtiSayaci = ArtiSayaci+1;
        end
    end
end
ArtiElemanlar
EksiElemanlar
gayeportakaldali tarafından 5 yıl önce cevaplandı

hocam ama benim istediğm belirli sayılar için  rasgele sayı değil yapamıyorum 

sayginer Yönetici tarafından 5 yıl önce cevaplandı

randi fonksiyonu rastgele sayı üretir.

A=randi([-30 30],3,4)

Burada 3×2 boyutunda ve elemanları -30 ve 30 arasında değer alan bir matris üretmiş oluyoruz. Eğer kendi matrisimizi tanımlamak istersek randi fonksiyonu yerine kendi matrisimizi yazarız.
Kendi matrisimizi nasıl yazarız?

Örneğin:

KendiMatrisim = [1 2 3; 2 3 5]

Daha fazlası için:

gayeportakaldali tarafından 5 yıl önce cevaplandı

HOCAM NE YAPTIYSAM OLMADI YAPAMADIM 

sayginer Yönetici tarafından 5 yıl önce cevaplandı

Aşağıdaki örneği inceleyin ve anlamaya çalışın lütfen. Bundan sonraki sorularınızın cevaplanması için de lütfen

  • Eğer anladıysanız ne anladığınızı,
  • AnlamadIysanız da nereyi anlamadığınızı yazın.
A=[1 2 3 2; 6 3 4 -5; 7 8 2 3] %3e 4luk bir matris olusturalim

% Buradaki sayaclari degerleri ayirmak icin kullaniyoruz
EksiSayaci = 1;
ArtiSayaci = 1;
for i=1:3      %Satırlarda dolasmak için i indisi
    for j =1:4 %Sutunlarda dolasmak için j indisi
        if A(i,j) < 0; %Ornegin bir eleman negatifse Eksi elemanlar matrisine yaziyoruz
            EksiElemanlar(EksiSayaci) = A(i,j);
            EksiSayaci = EksiSayaci+1; %Eksi sayaci ilk 1 ile basliyor yani ust satirdaki eksi elemanlar vektorunun birinci kutusuna yaziyor
            %gelecek sefer ikinci jutuya yazmasi icin 1 arttiriyoruz.
        else
            ArtiElemanlar(ArtiSayaci) = A(i,j);
            ArtiSayaci = ArtiSayaci+1;
        end
    end
end
ArtiElemanlar
EksiElemanlar
gayeportakaldali tarafından 5 yıl önce cevaplandı

tamam sayıları yerine koydum buraya kadar herşey tamma burdan sonrasındaki matrisimde ikitane negatif değer var o negatif değerlerimin çarpımı nı istiyorum 

sayginer Yönetici tarafından 5 yıl önce cevaplandı

Onu da çabalayarak bir zahmet yapmaya çalışın. Bu bağlantıda her şey açıkça yazıyor: https://matlabturkiye.com/soru-sor/matris-icinde-carpma-islemi
Eğer bunları birleştirerek yapmakta zorlanıyorsanız belki de aldığınız dersi tekrar gözden geçirmelisiniz.
Başarılar.