Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Math 如何将两个矩阵相乘?_Math_Matrix - Fatal编程技术网

Math 如何将两个矩阵相乘?

Math 如何将两个矩阵相乘?,math,matrix,Math,Matrix,我试着写一个两个矩阵相乘的函数。矩阵由列表中的列表表示,如[[1,2],[3,4]]。虽然它给出了结果,但它是不正确的 def Matrice_multiplicator(a, z): if len(a[0])==len(z): m=Matrice_create(len(a)) b=0 c=0 k=1-1 while b<len(a): for i in range(len(a[

我试着写一个两个矩阵相乘的函数。矩阵由列表中的列表表示,如
[[1,2],[3,4]]
。虽然它给出了结果,但它是不正确的

def Matrice_multiplicator(a, z):
    if len(a[0])==len(z):
        m=Matrice_create(len(a))
        b=0
        c=0
        k=1-1
        while b<len(a):
            for i in range(len(a[b])):
                while c<len(a[0]):
                    k+=a[b][c]*z[c][b]
                    print(k)
                    c+=1
                m[b].append(k)
            b+=1
        return m
    else:
        return "Not multiplicable"
def矩阵乘法器(a,z):
如果len(a[0])==len(z):
m=矩阵_创建(len(a))
b=0
c=0
k=1-1

而标准Python中的矩阵乘法可能如下所示:

def矩阵_乘法(A,B):
a=len(a)
b=len(A[0])
c=len(B[0])
如果b!=len(B):
打印(f“尺寸的错误组合:{a}x{b}和{len(b)}x{c}”)
其他:
返回[[范围(B)内k的总和([A[i][k]*B[k][j])
对于范围(c)内的j)]
对于范围(a)内的i)]
A=[[1,2,3],
[4, 5, 6]]
B=[[1,2,3,4],
[5, 6, 7, 8],
[9, 10, 11, 12]]
打印(矩阵_乘法(A,B))
结果:

[[38, 44, 50, 56],
 [83, 98, 113, 128]]

标准Python中的矩阵乘法可能如下所示:

def矩阵_乘法(A,B):
a=len(a)
b=len(A[0])
c=len(B[0])
如果b!=len(B):
打印(f“尺寸的错误组合:{a}x{b}和{len(b)}x{c}”)
其他:
返回[[范围(B)内k的总和([A[i][k]*B[k][j])
对于范围(c)内的j)]
对于范围(a)内的i)]
A=[[1,2,3],
[4, 5, 6]]
B=[[1,2,3,4],
[5, 6, 7, 8],
[9, 10, 11, 12]]
打印(矩阵_乘法(A,B))
结果:

[[38, 44, 50, 56],
 [83, 98, 113, 128]]

有几件事(可能还有其他的):(1)仔细看一看这行
k+=A[b][c]*z[c][b]
;这不是你想要的公式。(2) 何时应将
k
设置为零?(3) 何时应将
c
重置为零?(4) 你创建的矩阵是什么?请参阅:显示复制所需的完整代码。如果你展示了你所做的精确计算,你得到的结果,以及你期望得到的结果,这也很有帮助。有几件事(可能还有其他的):(1)仔细看看这行
k+=A[b][c]*z[c][b]
;这不是你想要的公式。(2) 何时应将
k
设置为零?(3) 何时应将
c
重置为零?(4) 你创建的矩阵是什么?请参阅:显示复制所需的完整代码。如果你展示你做过的精确计算,你得到的结果,以及你期望得到的结果,这也很有帮助。这回答了你的问题吗?这回答了你的问题吗?