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.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
ö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.
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])
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.
DH forumlarında vakit geçirmekten keyif alıyor gibisin ancak giriş yapmadığını görüyoruz.
Üye Ol Şimdi DeğilÜye olduğunda özel mesaj gönderebilir, beğendiğin konuları favorilerine ekleyip takibe alabilir ve daha önce gezdiğin konulara hızlıca erişebilirsin.
< Bu mesaj bu kişi tarafından değiştirildi luck runs out -- 9 Mayıs 2018; 1:58:23 >