JAVA写程序如何实现两个矩阵的乘法运算?实例介绍

其实写java代码就是实现逻辑的过程,我们需要了解其要实现的主要功能,这样在进行Java编写的时候就会有明确方向了,那JAVA写程序实现两个矩阵的乘法运算?下面来我们就来给大家讲解一下。

1、算法思想

最近老是碰到迭代问题,小数太多手算又算不过来,写个矩阵乘法辅助一下吧。

有两个矩阵A和B,计算矩阵A与B相乘之后的结果C。

A的列数必须等于B的行数

用矩阵A的第i行的值分别乘以矩阵B的第J列,然后将结果相加,就得到C[i][j]。

矩阵A的行等于C的行,矩阵B的列等于C的列,这两个数值用来控制循环的次数,但是每一步中需要把行和列中对应的乘机求和,所以再加一个内循环控制乘法求和就行。

下面我们进行矩阵乘法的测试

JAVA写程序如何实现两个矩阵的乘法运算?.png

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的单位矩阵相乘,方便我们观察结果。

1.jpg

可以看到最后的计算结果为:

2.png

利用java编写矩阵代码,可以很好的锻炼我们的逻辑思维,如果我们也感兴趣的话,可以自己尝试编写,提高java技能!最后大家如果想要了解更多java实例知识,敬请关注奇Q工具网。

推荐阅读:

怎样用git管理两个服务器?git如何工作?

java接口可以创建对象吗?java接口如何实现?

程序员面试是托关系能过吗?程序员面试要做哪些准备?