Şimdi Ara

Bir Matris işlemi

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
6
Cevap
0
Favori
842
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • selam arkadaşlar. Elimde onlarca matris var ve ben bu matrisler üzerinde şu işlemi yapmak istiyorum.

    Örneğin:

    1 1 0 0 0 0 0 1 0
    0 1 0 1 1 0 1 0 1
    0 1 0 1 1 0 1 0 1
    0 1 1 1 0 1 1 1 0
    0 1 1 1 1 1 0 1 0

    matrisi var elimizde Bu matriste yatay olarak tarama yaparak peş peşe birlerin sayısı 3 den büyük ise 1 olarak kalması eğer 3 den küçük ise o satırları 0 yapmam gerekli örneğin yatay olarak

    0 1 1 1 1 1 0 1 1

    için peşe 1 lerin olduğu yer 5 tane burası sabit olarak kalacak, ondan sonra 1 lerin olduğu kısım 3 den küçük olduğu için orası sıfır olacak. yani şu şekli alacak

    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0
    0 1 1 1 0 1 1 1 0
    0 1 1 1 1 1 0 0 0

    bunu nasıl yapabilirim. Şimdiden çok teşekkürler..



  • Baya uğraştırıcı bir soruymuş.
    Ama başardım.

    Linux'te geliştirdiğim kodların SS lerini ekliyorum.
    Bu arada belirtmemişsin ama programı c++ kullanarak yazdım.

     Bir Matris işlemi

     Bir Matris işlemi



    Şimdi bu çalışıyormu? diyeceksin. İşte çıktısı

     Bir Matris işlemi



    < Bu mesaj bu kişi tarafından değiştirildi penguin -- 13 Mayıs 2007; 0:44:16 >




  • evet çalışıyor ama tam çalışmıyor

    Bir yerlerde sorun var ki tahminim ce j=j-1 de sorun var zannımca. ordaki j=j-1 ram olarak ne görev yapıyor. Ben matlabda yapıyorum fakat C++ biliğim için sorun olmuyor. Benide baya zorladı. Ama çalışan bişey tam olarak yapamadım benim mantığım şu olmuştu;
    A matrisi
    0 0 0 0 0
    0 0 0 0 0
    0 0 0 0 0 gibi ve birde
    0 0 0 0 0
    0 0 0 0 0

    B matrisi
    0 0 1 1 1
    1 1 1 0 0
    0 1 0 1 1 matrisimiz olsun.
    1 0 1 1 1
    0 1 1 1 1
    B matrisi bizim işlem yapacağımız matris ve bu matriste ard arda 3 den fazla birli olan kısımları A matrisimizde 1 olarak atamak aklıma geldi fakat onuda doğru bir şekilde yapamadım.

    Sizin vermiş olduğunuz kodu Matlaba çevirdiğimde ise

    Attempted to access yatay(343,0); index must be a positive integer or logical. hatası alıyorum. Matlabda bizim C++ döngülerde 0 dan başlayıp I[0][0] olmamakta, başlangıç değeri 1 olmak zornda ona göre çevirdiğimde de bu hatayı aldım. Matrisin 343. Satırında hata çıktı.

    Sizhangi yol ile yaptınız tam olarak anlıyamadım ve oradaki j=j-1 yerine başka bişey yazma imkanımız varmı. ilgilendiğin için teşekkür ederim.



    < Bu mesaj bu kişi tarafından değiştirildi electronicboy -- 13 Mayıs 2007; 22:42:51 >




  • c++ kodlaması olarak program hatasız çalışıyor.
    j=j-1 satırı da c++ kodlama mantığı açısından doğru ancak matlab da bu durum soruna neden oluyor olabilir.
    Eğer matlab da diziler 1 den başlıyorsa, döngülerin ve dizilerin değerlerini bir arttırmayı deneyebilirsin.
  • birtürlü çalıştıramadım ya. Sizin Programın çalışma mantığı ne? Neye göre yaptınız.
  • Her 1 rakamı sonraki satırın kolonu için birikimli toplam oluşturur ancak sonraki satırın kolonu 0 ise, birikimli toplam yine 0 değerini vererek orijinal değeri döndürür. Bu şekilde her satırın her kolonu için değerlendirme yapılır. Nihai neticeye ulaşmak içinse, matrisin son sütun ve satırından geriye doğru değerlendirme yapılarak 1'den büyük her değer miktarında döngü kurularak ilgili hücre gözelerine 1 değeri aktarılır. Bu matrisin (1,1) hücresine değin devam eder.



    < Bu mesaj bu kişi tarafından değiştirildi penguin -- 16 Mayıs 2007; 0:46:01 >
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.