文章目录[隐藏]
计算两个矩阵A、B的乘积矩阵C。矩阵A={1,2,3,4,5,6},矩阵B={7,8,9,10,11,12},易语言采用循环算法实现矩阵相乘
两个矩阵的乘积仍然是矩阵。若A矩阵有m行p列,B矩阵有p行n列,则它们的乘积C矩阵有m行n列。C=A*B的算法:
Cij= (i=0,1,……,m-1;j=0,1,……,n-1)
设A、B、C矩阵用3个2维数组表示:a数组有3行2列,b数组有2行3列,则c数组有3行3列。如:
c[0][0]= a[0][0]*b[0][0]+a[0][1]*b[1][0];
c[1][0]= a[1][0]*b[0][1]+a[1][1]*b[1][1];
从以上算法可以看出,需要3重循环(i、j、k)才能计算C矩阵的各元素。
通过上面规律可以推导出结果。
计算源码
.版本 2 .子程序 _计算图形按钮_被单击 .局部变量 循环变量1, 整数型 .局部变量 循环变量2, 整数型 .局部变量 循环变量3, 整数型 .局部变量 变量1, 整数型, , , 存放相乘之后的数据 .局部变量 矩阵A, 整数型, , "3,2", 存放矩阵A数据的数组 .局部变量 矩阵B, 整数型, , "2,3", 存放矩阵B数据的数组 .局部变量 矩阵C, 整数型, , "3,3", 存放矩阵C数据的数组 .局部变量 变量2, 整数型, , , 用来设置矩阵内的数据 编辑框1.内容 = “” 编辑框2.内容 = “” 编辑框3.内容 = “” 变量2 = 0 ' 设置第一个矩阵A的数据 .变量循环首 (1, 3, 1, 循环变量1) .变量循环首 (1, 2, 1, 循环变量2) 变量2 = 变量2 + 1 矩阵A [循环变量1] [循环变量2] = 变量2 ' 将矩阵A的数据添加到编辑框 编辑框1.加入文本 (“ ”) 编辑框1.加入文本 (到文本 (矩阵A [循环变量1] [循环变量2]), “ ”) .变量循环尾 () 编辑框1.加入文本 (#换行符) .变量循环尾 () ' 设置第一个矩阵A的数据 .变量循环首 (1, 2, 1, 循环变量1) .变量循环首 (1, 3, 1, 循环变量2) 变量2 = 变量2 + 1 矩阵B [循环变量1] [循环变量2] = 变量2 ' 将矩阵A的数据添加到编辑框 编辑框2.加入文本 (“ ”) 编辑框2.加入文本 (到文本 (矩阵B [循环变量1] [循环变量2]), “ ”) .变量循环尾 () 编辑框2.加入文本 (#换行符) .变量循环尾 () ' 得出矩阵A×矩阵B的结果矩阵C .变量循环首 (1, 3, 1, 循环变量1) .变量循环首 (1, 3, 1, 循环变量2) 变量1 = 0 ' 得出矩阵A与对就的矩阵B的数据相乘,得出对应矩阵C的数据 .变量循环首 (1, 2, 1, 循环变量3) 变量1 = 变量1 + 矩阵A [循环变量1] [循环变量3] × 矩阵B [循环变量3] [循环变量2] ' 相乘得出矩阵C的数据 矩阵C [循环变量1] [循环变量2] = 变量1 .变量循环尾 () .变量循环尾 () .变量循环尾 () ' 显示最后的结果矩阵C .变量循环首 (1, 3, 1, 循环变量1) .变量循环首 (1, 3, 1, 循环变量2) 编辑框3.加入文本 (到文本 (矩阵C [循环变量1] [循环变量2]), “ ”) .变量循环尾 () 编辑框3.加入文本 (#换行符) .变量循环尾 ()