为了账号安全,请及时绑定邮箱和手机立即绑定

java矩阵类,矩阵的乘法

标签:
Java

问题如下

矩阵成积.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

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
全栈工程师
手记
粉丝
73
获赞与收藏
369

关注作者,订阅最新文章

阅读免费教程

  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消