在这篇文章中,我们将看到如何从用户那里获取矩阵输入并在Python中执行矩阵乘法。
例子:
1 2 3 4 5 6 7 8 9 |
输入 : 矩阵1 = [[1, 2], [2, 3]] 矩阵2 = [[1, 2], [2, 3]] 输出 : [5, 8] [8, 13] |
现在,让’看到执行此任务的不同方法:
使用嵌套循环(for / while)。
在这种方法中,我们必须遍历每一行和每一列的项,’s为什么我们在这里使用嵌套循环。
下面是给出的Python代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
打印(“输入第一个矩阵的顺序:”) #在一行中接受整数输入 m,n = 列表(地图(整型,输入().分裂())) 打印(“输入行明智的值”) #第一个矩阵的空列表 mat1 = [] #在矩阵中逐行插入 为了 i 在 范围(m) : 打印(“输入行”,i,“价值:”) #在一行中输入1d-整数数组输入 排 = 列表(地图(整型,输入().分裂())) mat1.附加(排) 打印(“输入第二矩阵的顺序:”) #在一行中接受整数输入 p,q = 列表(地图(整型,输入().分裂())) 打印(“输入行明智的值”) #第二个矩阵的空列表 mat2 = [] #在矩阵中逐行插入 为了 j 在 范围(p) : 打印(“输入行”,j,“价值:”) #在一行中输入1d-整数数组输入 排 = 列表(地图(整型,输入().分裂())) mat2.附加(排) #显示第一和第二矩阵 打印(“矩阵1:”,mat1) 打印(“矩阵2:”,mat2) #可重用矩阵的空列表 结果 = [] #创建一个阶数为m x q的0矩阵 为了 i 在 范围(m): 排 = [] 为了 j 在 范围(q): 排.附加(0) 结果.附加(排) 打印(“矩阵乘法:”) #执行矩阵乘法 #使用嵌套的for循环 为了 i 在 范围(m): 为了 j 在 范围(q): 为了 k 在 范围(n) : 结果[i][j] + = mat1[i][k] * mat2[k][j] #矩阵按行打印 为了 排 在 结果: 打印(排) |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
进入 命令 的 1st 矩阵: 2 2 进入 排 明智的 价值观 进入 排 0 价值: 1 2 进入 排 1 价值: 2 3 进入 命令 的 2nd 矩阵: 2 2 进入 排 明智的 价值观 进入 排 0 价值: 1 2 进入 排 1 价值: 2 3 矩阵 1: [[1, 2], [2, 3]] 矩阵 2: [[1, 2], [2, 3]] 矩阵 乘法: [5, 8] [8, 13] |
使用numpy库的dot()方法。
在此方法中,使用了numpy的dot()方法。 dot()方法用于找出两个矩阵的点积。点积不过是使用numpy库在Python中进行的简单矩阵乘法。在这种方法中,我们必须传递两个我们需要点积的矩阵。
下面是给出的Python代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#导入numpy库 进口 麻木 打印(“输入第一个矩阵的顺序:”) m,n = 列表(地图(整型,输入().分裂())) 打印(“输入行明智的值”) mat1 = [] #在矩阵中逐行插入 为了 i 在 范围(m) : 打印(“输入行”,i,“价值:”) 排 = 列表(地图(整型,输入().分裂())) mat1.附加(排) 打印(“输入第二矩阵的顺序:”) p,q = 列表(地图(整型,输入().分裂())) 打印(“输入行明智的值”) mat2 = [] #在矩阵中逐行插入 为了 j 在 范围(p) : 打印(“输入行”,j,“价值:”) 排 = 列表(地图(整型,输入().分裂())) mat2.附加(排) 打印(“矩阵1:”,mat1) 打印(“矩阵2:”,mat2) 打印(“矩阵乘法:”) #使用执行矩阵乘法 麻木库的#点方法 结果 = 麻木.点(mat1,mat2) #矩阵按行打印 为了 排 在 结果: 打印(排) |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
进入 命令 的 1st 矩阵: 2 2 进入 排 明智的 价值观 进入 排 0 价值: 1 2 进入 排 1 价值: 2 3 进入 命令 的 2nd 矩阵: 2 2 进入 排 明智的 价值观 进入 排 0 价值: 1 2 进入 排 1 价值: 2 3 矩阵 1: [[1, 2], [2, 3]] 矩阵 2: [[1, 2], [2, 3]] 矩阵 乘法: [5, 8] [8, 13] |
使用list-comprehension和zip()函数。
在这种方法中,zip()函数用于 合并清单 生成的zip对象是元组列表和list-comprehension的对象,用于创建列表并以单行代码执行操作。
下面是给出的Python代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
打印(“输入第一个矩阵的顺序:”) m,n = 列表(地图(整型,输入().分裂())) 打印(“输入行明智的值”) mat1 = [] #在矩阵中逐行插入 为了 i 在 范围(m) : 打印(“输入行”,i,“价值:”) 排 = 列表(地图(整型,输入().分裂())) mat1.附加(排) 打印(“输入第二矩阵的顺序:”) p,q = 列表(地图(整型,输入().分裂())) 打印(“输入行明智的值”) mat2 = [] #在矩阵中逐行插入 为了 j 在 范围(p) : 打印(“输入行”,j,“价值:”) 排 = 列表(地图(整型,输入().分裂())) mat2.附加(排) 打印(“矩阵1:”,mat1) 打印(“矩阵2:”,mat2) 打印(“矩阵乘法:”) #perfrom矩阵乘法使用 #列表理解 结果 = [[ 和(ele1*ele2 为了 ele1,ele2 在 压缩(排,关口)) 为了 关口 在 压缩(*mat2) ] 为了 排 在 mat1 ] #矩阵按行打印 为了 排 在 结果: 打印(排) |
输出:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
进入 命令 的 1st 矩阵: 2 2 进入 排 明智的 价值观 进入 排 0 价值: 1 2 进入 排 1 价值: 3 4 进入 命令 的 2nd 矩阵: 2 2 进入 排 明智的 价值观 进入 排 0 价值: 5 6 进入 排 1 价值: 7 8 矩阵 1: [[1, 2], [3, 4]] 矩阵 2: [[5, 6], [7, 8]] 矩阵 乘法: [19, 22] [43, 50] |
那’关于使用用户输入在Python中进行矩阵乘法的所有内容。