前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >矩阵乘法的java实现

矩阵乘法的java实现

作者头像
别团等shy哥发育
发布2023-02-25 14:59:42
1.7K0
发布2023-02-25 14:59:42
举报
文章被收录于专栏:全栈开发那些事

文章目录

1、算法思想

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

有两个矩阵A和B,计算矩阵A与B相乘之后的结果C。 A的列数必须等于B的行数

用矩阵A的第i行的值分别乘以矩阵B的第J列,然后将结果相加,就得到C[i][j]。 矩阵A的行等于C的行,矩阵B的列等于C的列,这两个数值用来控制循环的次数,但是每一步中需要把行和列中对应的乘机求和,所以再加一个内循环控制乘法求和就行。

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

A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\\ 1 & 1& 1 \end{bmatrix} B= \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1\\ \end{bmatrix}

2、代码实现

代码语言:javascript
复制
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++){
            for(int j=0;j<listLength;j++){
                for(int k=0;k<x1[0].length;k++){
                    multiply[i][j]+=x1[i][k]*x2[k][j];
                }
            }
        }
        System.out.println("相乘之后的结果为:");
        for(int i=0;i<multiply.length;i++){
            for(int j=0;j<multiply[0].length;j++){
                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的单位矩阵相乘,方便我们观察结果。

在这里插入图片描述
在这里插入图片描述

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

A = \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \\ 7 & 8 & 9\\ 1 & 1& 1 \end{bmatrix}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021-10-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 1、算法思想
  • 2、代码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档