محاسبه ضرب ماتریس ها بدون کمک numpy

maedejy

کاربر تازه وارد
تازه وارد
Python:
def kh(a,b):
   
    g=0
    k=[([0]*len(b[0]))] * len(a)
    print(k)
   
   

   
   
    if len (a[1])!=len(b):
        return 0
    else:
        for q in range (0,len(a)):
           
           
           
            for p in range(0,len(b[0])):
                g=0
                for i in range (0,len(b)):
                   
                    g=g+(int(a[q][i])*int(b[i][p]))      
                k[q][p]=g
           
kh([[2, 3, 4],[3, 4, 5]],[[4, -3, 12],[1, 1, 5],[1, 3, 2]])
                     
    return print(k)
سلام , این کد رو واسه ضرب ماتریس ها بدون numpy نوشتم , اما فقط وقتی درست کار می کنه که قالب ماتریس نتیجه رو دستی به برنامه داده باشم و وقتی به هر طریقی قالب نتیجه رو واسه هر ورودی شخصی سازی می کنم , هر سطر رو علاوه بر ردیف اول تو ردیف دوم هم می نویسه( در حالتی که نتیجه 2 سطری باشه) واسه همین اون سطرای قبلی دیگه تو نتیجه نیستن و همه ی سطر ها رو سطر آخر تکراری پر می کنه ! به نظرتون چی کار کنم؟

اینم حالتی که قالب نتیجه رو دستی وارد کردم و درست کار می کنه.

Python:
def kh(a,b):
    
    g=0
    k=[[0,0,0],[0,0,0]]
    
    

    
    
    if len (a[1])!=len(b):
        return 0
    else:
        for q in range (0,len(a)):
            
            
            
            for p in range(0,len(b[0])):
                g=0
                for i in range (0,len(b)):
                    
                    g=g+(int(a[q][i])*int(b[i][p]))       
                k[q][p]=g
            

                      
    return print(k)


kh([[2, 3, 4],[3, 4, 5]],[[4, -3, 12],[1, 1, 5],[1, 3, 2]])
 
بالا