其实写java代码就是实现逻辑的过程,我们需要了解其要实现的主要功能,这样在进行Java编写的时候就会有明确方向了,那JAVA写程序实现两个矩阵的乘法运算?下面来我们就来给大家讲解一下。
1、算法思想
最近老是碰到迭代问题,小数太多手算又算不过来,写个矩阵乘法辅助一下吧。
有两个矩阵A和B,计算矩阵A与B相乘之后的结果C。
A的列数必须等于B的行数
用矩阵A的第i行的值分别乘以矩阵B的第J列,然后将结果相加,就得到C[i][j]。
矩阵A的行等于C的行,矩阵B的列等于C的列,这两个数值用来控制循环的次数,但是每一步中需要把行和列中对应的乘机求和,所以再加一个内循环控制乘法求和就行。
下面我们进行矩阵乘法的测试
2、代码实现
package com.Unit4; public class Multiply { /** * 矩阵乘法 * * @param x1 第一个矩阵 * @param x2 第二个矩阵 */ public static void multiplyMatrix(int x1[][], int x2[][]) { //前提条件:第一个矩阵的列必须等于第二个矩阵的行 if (x1[0].length != x2.length) { System.out.println("不满足相乘的条件"); return; } int lineLength = x1.length; //第一个矩阵的行 int listLength = x2[0].length; //第二个矩阵的列 int[][] multiply = new int[lineLength][listLength]; //相乘的结果矩阵 //乘法 for (int i = 0; i < linelength; i++) { < p = "" > for (int j = 0; j < listlength; j++) { < p = "" > for (int k = 0; k < x1[0].length; k++) { < p = "" > multiply[i][j] += x1[i][k] * x2[k][j]; } } } System.out.println("相乘之后的结果为:"); for (int i = 0; i < multiply.length; i++) { < p = "" > for (int j = 0; j < multiply[0].length; j++) { < p = "" > System.out.print(multiply[i][j] + " "); } System.out.print("\n"); } } public static void main(String[] args) { //4*3 int[][] x1 = { { 1 , 2 , 3 } , { 4 , 5 , 6 } , { 7 , 8 , 9 } , { 1 , 1 , 1 } }; //3*3 int[][] x2 = { { 1 , 0 , 0 } , { 0 , 1 , 0 } , { 0 , 0 , 1 } }; multiplyMatrix(x1, x2); } }
我们用一个4*3的矩阵去和一个3*3的单位矩阵相乘,方便我们观察结果。
可以看到最后的计算结果为:
利用java编写矩阵代码,可以很好的锻炼我们的逻辑思维,如果我们也感兴趣的话,可以自己尝试编写,提高java技能!最后大家如果想要了解更多java实例知识,敬请关注奇Q工具网。
推荐阅读: