Şimdi Ara

Python liste ve matrislerden anlayan varsa bakabilir mi?

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
319
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Merhabalar linkte gördüğünüz kod ile uğraşıyorum. Oluşturmaya çalıştığım şey electre method. Hata veren kısım 3x2, 3x4 gibi satır sayısı sütün sayısından az olan matrislerde son sütunun ağırlığını isterken "IndexError: list assignment index out of range" hatasını veriyor.
    Diğer tip matrislerde sorun olmuyor. Anlayanlar bir göz atabilir mi?
    Python matris hata veren kod için tıklayınız
    Edit: Biraz kafa yorunca hallettim.



    < Bu mesaj bu kişi tarafından değiştirildi luck runs out -- 9 Mayıs 2018; 1:58:23 >



  • Link public değil. İzinleri düzeltirsen bakabiliriz.

    < Bu ileti mini sürüm kullanılarak atıldı >
  • @CarnageTR
    O dosyadaki sorunu halletmiştim ama yine de şimdi public olarak ayarladım.
  • öncelikle belirtmeliyim ki yazdığın kod python mantığına oldukça ters. Kodu fonksiyon ve classlar ile düzenlersen hem daha okunaklı hem de daha işlevli olur.

    Problemin kaynağı "agirlikistensin" listesinin yapısından kaynaklanıyor. Elindeki kodu aşağıdaki gibi düzenlersen sorunun kaynağını görebilirsin.



    #-*- coding:utf-8 -*- 
    #Matris oluşturma.
    u=-1
    satir = 0
    sutun = 0
    matris =[]
    matrisinkaresi =[]
    kokici= []
    x=[]
    agirlikistensin=[]
    agirliklartoplam=0
    agirlik=[]
    wmat=[]
    satir = int(input("Karar değişkeni sayısı:"))
    sutun = int(input("Değerlendirme faktörü sayısı:"))

    for i in range(satir): # Kullanıcının istediği boyutta matris oluşturuyor.Diğer matrisler ileriki adımlar içindir.
    matris += [[0] *sutun]
    matrisinkaresi += [[0] * sutun]
    kokici+=[[0]*sutun] ###
    x+=[[0]*sutun]
    agirlikistensin+=[[0]*sutun]
    agirlik+=[[0]*sutun]
    wmat+=[[0]*sutun]


    for i in range(satir): #Kullanıcıdan matrise değer atanıyor.
    for j in range(sutun):
    sayi = float(input("{}. satir {}. sütun elemanını giriniz:" .format(i+1,j+1)))
    matris[i][j] = sayi
    matrisinkaresi[i][j] = sayi**2
    sayac1=sutun-1

    for i in range(sutun):
    print('sütun: ', i)
    print('agirlikistendsin: ', agirlikistensin)
    for j in range(sutun):
    print('index: ', j)
    print('agirlikistensin j: ', agirlikistensin[j])
    print('agirliktoplam: ', agirliklartoplam)
    agirlikistensin[j]= float(input("{}. değerlendirme faktörünün ağırlığını giriniz:".format(j+1)))
    agirliklartoplam+=agirlikistensin[j]
    print('agirlikistendsin: ', agirlikistensin)
    print('--------')

    for j in range(sutun):
    print(j)
    agirlik[j]=agirlikistensin[j]/agirliklartoplam




    for i in range(satir): #Kullanıcıdan matrise değer atanıyor.
    for j in range(sutun):
    print(matrisinkaresi[i][j])
    m=i
    k=i
    u=i
    for j in range (sutun):
    while m>=0:
    kokici[i][j] += matrisinkaresi[m][j]
    m=m-1
    if m==-1:
    m=k

    for j in range (sutun):
    while True:
    kokici[u][j]=kokici[i][j]
    u=u-1
    if u==-1:
    u=i
    break
    for i in range (satir):
    for j in range (sutun):
    x[i][j]=(matris[i][j])/((kokici[i][j])**0.5)

    for i in range (satir):
    for j in range (sutun):
    wmat[i][j]=x[i][j]*agirlik[j]

    for i in range (satir):
    for j in range (sutun):
    print("{}.satir {}.sütundaki kök içi".format(i+1,j+1), kokici[i][j])

    for i in range (satir):
    for j in range (sutun):
    print("{}.satir {}.sütundaki x matrisi değeri".format(i+1,j+1), x[i][j])

    for i in range (satir):
    for j in range (sutun):
    print("Ağırlıklandırılmış matrisimizin {}.satır {}.sütun değeri:".format(i+1,j+1),wmat[i][j])




  • Yapay Zeka’dan İlgili Konular
    c dili bilenler bakabilir mi?
    11 yıl önce açıldı
    Daha Fazla Göster
    
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.