美文网首页
java矩阵类,矩阵的乘法

java矩阵类,矩阵的乘法

作者: 知识学者 | 来源:发表于2018-07-30 22:15 被阅读33次

问题如下

矩阵成积.jpg

我采用的是3重循环,先计算的列的结果,应该还可以先计算行的结果,然后求出矩阵的乘法。没有过多的技巧,就是循环的使用。

相关的code

package day20180728;

import java.util.Scanner;

class Matrix{
    
    private int m,n;
    private int[][] arr;
    
    public Matrix(int m,int n)
    {
        this.m=m;
        this.n=n;   
        arr=new int[m][n];
    }
    
    
    public void setMat()
    {
        /*
         * Scanner(InputStream source) 
          构造一个新的 Scanner,它生成的值是从指定的输入流扫描的
         */
        Scanner sn=new Scanner(System.in);
        int count=0;
        for(int i=0; i<m; i++)
        
        for(int j=0; j<n; j++)
        {
            System.out.print("请输入矩阵中的数字:");
            arr[i][j]=sn.nextInt();
        }
        
    }
    
    public int[][] getArr()
    {
        return arr;
    }
    
    
    public void  display()
    {
        for(int i=0; i<m; i++)
        { 
        for(int j=0; j<n; j++)
        {
            System.out.print(arr[i][j]+"\t");
        }
        System.out.println();
        }
        
        System.out.println("-----"+arr.length+"*"+arr[0].length);
    }
    
    

    
    public static int[][] chenfaMat(int[][] a,int[][] b)
    {
        if(a[0].length!=b.length)
            System.out.print("行列不相等不能计算");
        
        int[][] end=new int[a.length][b[0].length];
        
        int num=0,i=0,j=0;
        
        int count=0;
        for(int c=0; c<b[0].length; c++)
        {
            
        
        for( i=0; i<a.length; i++)
        {
            num=0;
            
            for(j=0; j<b.length; j++)
            {
                num+=a[i][j]*b[j][c];
                System.out.println("-----"+"["+i+","+j+"] "+c+"/// "+num);
            }
           
            end[i][c]=num;
        }
        
        System.out.println("--跳出循环后的i,j---"+"["+i+","+j+"]"+c+"### ");
        
        
        }
        
        return end;
    }
    
}



public class MaxDem {

    
    public static void print(int[][] arr)
    {
        for(int i=0; i<arr.length; i++)
        { 
        for(int j=0; j<arr[0].length; j++)
        {
            System.out.print(arr[i][j]+"\t");
        }
        System.out.println();
        }
        
        System.out.print("-----"+arr.length+arr[0].length);
        
    }

    public static void main(String[] args) {
        
        Matrix mx1=new Matrix(2,2);
        mx1.setMat();
        mx1.display();
        
        
        Matrix mx2=new Matrix(2,3);
        mx2.setMat();
        mx2.display();
        
    int[][] arry=Matrix.chenfaMat(mx1.getArr(), mx2.getArr());
    
    print(arry);
        
        
        
    

    }

}

结果

矩阵的乘法.PNG

相关文章

  • java矩阵类,矩阵的乘法

    问题如下 我采用的是3重循环,先计算的列的结果,应该还可以先计算行的结果,然后求出矩阵的乘法。没有过多的技巧,就是...

  • sparse matrix 的分布式存储和计算

    矩阵乘法 我们先来补充一下矩阵乘法的数学知识: 矩阵乘法的意义: 对一个矩阵进行左乘一个矩阵的运算,相当于对该矩阵...

  • 矩阵链乘法

    矩阵A和矩阵B能够相乘,只有当矩阵A和矩阵B相容。 矩阵链乘法的前提就是降低矩阵的乘法规模。之所以可以这样,是因为...

  • 图形变换原理

    概述: 图形变换大体分为缩放,平移,拉伸,旋转.他们的原理是矩阵的乘法. 矩阵的乘法: 矩阵的乘法规则:两个矩阵相...

  • 图形矩阵-----Matrix

    一、矩阵的定义 二、矩阵与矩阵的乘法 矩阵的乘法满足以下运算律:结合律,分配律,但是矩阵乘法不满足交换律。更详细的...

  • MIT-18.06-线性代数(第三讲)

    第三讲 —— 矩阵乘法和逆 1. 矩阵乘法 1.1 行列内积 假设矩阵乘矩阵,得到矩阵,。回顾单个元素的求法,取特...

  • 矩阵乘法在python中的表示

    从数学表达上来说,矩阵乘法有: 矩阵的乘法(matmul product):这就是线性代数里面的矩阵乘法 內积/点...

  • 矩阵代数(一)- 矩阵运算

    小结 和与标量乘法 矩阵乘法 矩阵的乘幂 矩阵的转置 若是矩阵,即有行列的矩阵,则的第行第列的元素用表示,称为的元...

  • ML-01 (线性代数知识)

    单位矩阵:在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,这种矩阵被称为单位矩阵。它是个方阵,从左上...

  • 理解线性代数核心算法:矩阵乘法就是“方法乘以对象”

    本文直指线性代数最最核心的算法——矩阵乘法。 记忆矩阵乘法的最速方法 矩阵乘法,在书本上有它的公式,但是太不直观了...

网友评论

      本文标题:java矩阵类,矩阵的乘法

      本文链接:https://www.haomeiwen.com/subject/owuqvftx.html