栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

矩阵乘法的java实现

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

矩阵乘法的java实现

文章目录
  • 1、算法思想
  • 2、代码实现

1、算法思想

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

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

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

下面我们进行矩阵乘法的测试
A = [ 1 2 3 4 5 6 7 8 9 1 1 1 ] B = [ 1 0 0 0 1 0 0 0 1 ] 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} A=⎣⎢⎢⎡​1471​2581​3691​⎦⎥⎥⎤​B=⎣⎡​100​010​001​⎦⎤​

2、代码实现
package com.Unit4;

public class Multiply {

    
    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 

我们用一个4*3的矩阵去和一个3*3的单位矩阵相乘,方便我们观察结果。

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

A = [ 1 2 3 4 5 6 7 8 9 1 1 1 ] A = begin{bmatrix} 1 & 2 & 3 \ 4 & 5 & 6 \ 7 & 8 & 9\ 1 & 1& 1 end{bmatrix} A=⎣⎢⎢⎡​1471​2581​3691​⎦⎥⎥⎤​

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/314584.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号