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

2021-10-01矩阵类、矩阵基本运算、矩阵的构造函数等代码实现

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

2021-10-01矩阵类、矩阵基本运算、矩阵的构造函数等代码实现

用矩阵类进行矩阵基本运算、矩阵的构造函数等代码实现
  • 矩阵测试代码
  • 定义Matrix类
    • Matrix的构造函数
    • 用字符串表示矩阵内容
    • 返回矩阵行列数
    • 矩阵相加
    • 矩阵相乘
    • 检测矩阵是否为空
    • 检测矩阵是否每行元素数量一致(默认每行元素相同)
  • 运行结果

矩阵测试代码

基本思路:先定义两个数组arr1与arr2,再用Matrix类创建两个对象m1、m1,此时arr1和arr2是被作为实参传递进Matrix类中,进行矩阵相加运算和矩阵相乘运算,最后打印出结果。

public class MatrixTest{
    public static void main(String[] args) {
//定义数组
        int[][] arr1 = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}};
        int[][] arr2 = {{1, 2, 3}, {1, 2, 3}, {1, 2, 3}};
        Matrix m1 = new Matrix(arr1);
        Matrix m2 = new Matrix(arr2);
        Matrix m3 = m1.add(m2);
        Matrix m4 = m2.multi(m1);
//在屏幕打印输出矩阵,方便用户查看矩阵的值
        System.out.println(m1.toString());
        System.out.println(m2.toString());
        System.out.println(m3.toString());
        System.out.println(m4.toString());
    }
}
定义Matrix类
class Matrix {
    //定义一个用于接收的数组
     private int[][] matArray;
     //定义行数
     private int row;
     //定义列数
     private int col;
}
Matrix的构造函数
 //构造函数
     public Matrix (int[][] mArray) {
         //让行列数等于传递进来的数组行列数
         this.row = mArray.length;
         this.col = mArray[0].length;
         //把传递进来的数组地址赋给用于接收的数组
                 this.matArray = mArray;
     }
用字符串表示矩阵内容
//用字符串表示矩阵内容
    public String toString() {
        String s = "[";
        for (int i = 0; i < matArray.length; i++) {
            s += "[";
            for (int j = 0; j < matArray[0].length; j++) {
                s += matArray[i][j];
                if (j!= 0  || j!= matArray.length-1 ){
                    s+=",";
                }
            }
            s += "]";
        }
        s += "]";
        return s;
    }
返回矩阵行列数
     //返回矩阵行数
     public int getRow (){
         int count = 0;
         for (int i = 0;i 
矩阵相加 
  //矩阵相加
 public Matrix add(Matrix m) {
     if (m.isNull() == true || m.isRegular() == false || this.isNull() == true || this.isRegular() == false) {
         System.out.println("该操作不合法");
     }
     int add[][] = new int[this.row][this.col];
     for (int i = 0; i < row; i++) {
         for (int j = 0; j < col; j++) {
             add[i][j] = this.matArray[i][j] + m.matArray[i][j];
         }
     }
     Matrix ad = new Matrix(add);
     return ad;
 }
矩阵相乘
   //用于对两个数组中存储的矩阵进行乘法运算
 public Matrix multi(Matrix m) {
     if (m.isNull() ==true  || m.isRegular() == false || this.isNull() == true || this.isRegular() == false && this.matArray[0].length == m.matArray.length) {
         System.out.println("该操作不合法");
     }
     int mutil[][] = new int[this.row][m.col];
     for (int i = 0; i < this.row; i++) {
         for (int j = 0; j < m.col; j++) {
             for (int k = 0; k < this.col; k++) {
                 mutil[i][j] += this.matArray[i][k] * m.matArray[k][j];
             }
         }
     }
     Matrix mu = new Matrix(mutil);
     return mu;
 }

检测矩阵是否为空
  //检测矩阵是否为空
    private boolean isNull(){
         boolean k = false;
         if (this.row == 0 || this.col ==0 ){
         }
         else{
             k =false;
         }
         return k;
    }
检测矩阵是否每行元素数量一致(默认每行元素相同)
   //检测是否每行元素数量一致,默认每行元素相同
    private boolean isRegular(){
         boolean k =true;
         for (int i = 1;i 
运行结果 

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

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

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