java 矩阵[多维数组]源代码

2023-11-09

1.import java.util.Random;  
2.  
3.//矩阵类  
4.public class Matrix {  
5.  
6.    private int[][] matrix;  
7.  
8.    Random random = new Random();  
9.  
10.    // 构造方法  
11.    public Matrix() {  
12.        matrix = new int[3][3];  
13.  
14.    }  
15.  
16.    public Matrix(int n) {  
17.        matrix = new int[n][n];  
18.  
19.        for (int i = 0; i < n; i++) {  
20.            for (int j = 0; j < n; j++) {  
21.                matrix[i][j] = random.nextInt(100);  
22.            }  
23.        }  
24.    }  
25.  
26.    public Matrix(int n, int m) {  
27.        matrix = new int[n][m];  
28.  
29.        for (int i = 0; i < n; i++) {  
30.            for (int j = 0; j < m; j++) {  
31.                matrix[i][j] = random.nextInt(100);  
32.            }  
33.        }  
34.    }  
35.  
36.    public int[][] getMatrix() {  
37.        return matrix;  
38.    }  
39.  
40.    // 输出矩阵中所有元素  
41.    public void output() {  
42.        for (int i = 0; i < matrix.length; i++) {  
43.            for (int j = 0; j < matrix[i].length; j++) {  
44.                System.out.print(matrix[i][j] + "\t");  
45.            }  
46.            System.out.println();  
47.        }  
48.    }  
49.  
50.    // 求一个矩阵的转置矩阵  
51.    public Matrix transpose() {  
52.  
53.        int n = matrix.length;  
54.        int m = matrix[0].length;  
55.  
56.        Matrix transMatrix = new Matrix(n, m);  
57.  
58.        for (int i = 0; i < n; i++) {  
59.            for (int j = 0; j < m; j++) {  
60.                transMatrix.getMatrix()[i][j] = matrix[j][i];  
61.            }  
62.        }  
63.  
64.        return transMatrix;  
65.    }  
66.  
67.    // 判断一个矩阵是否为上三角矩阵  
68.    public boolean isTriangular() {  
69.  
70.        // 用相反的思路进行判断  
71.        for (int i = 1; i < matrix.length; i++) {  
72.            for (int j = 0; j < i; j++) {  
73.                if (matrix[i][j] != 0) {  
74.                    return false;  
75.                }  
76.            }  
77.        }  
78.  
79.        return true;  
80.    }  
81.  
82.    // 判断是否为对称矩阵  
83.    public boolean isSymmetry() {  
84.  
85.        for (int i = 1; i < matrix.length; i++) {  
86.            for (int j = 0; j < matrix[i].length; j++) {  
87.                if (matrix[i][j] != matrix[j][i]) {  
88.                    return false;  
89.                }  
90.            }  
91.        }  
92.  
93.        return true;  
94.    }  
95.  
96.    // 矩阵的相加  
97.    public void add(Matrix b) {  
98.  
99.        int[][] matrixOfB = b.getMatrix();  
100.  
101.        int n = matrixOfB.length;  
102.        int m = matrixOfB[0].length;  
103.  
104.        if (n != matrix.length || m != matrix[0].length) {  
105.            System.out.println("矩阵的长度不一致,不能相加");  
106.        } else {  
107.            for (int i = 0; i < n; i++) {  
108.                for (int j = 0; j < m; j++) {  
109.                    matrix[i][j] += matrixOfB[i][j];  
110.                }  
111.            }  
112.  
113.        }  
114.    }  
115.  
116.    public static void main(String[] args) {  
117.  
118.        //测试  
119.        Matrix test1 = new Matrix(4);  
120.  
121.        System.out.println("原始矩阵");  
122.        test1.output();  
123.  
124.        Matrix transMatrix = test1.transpose();  
125.  
126.        System.out.println("转置矩阵");  
127.        transMatrix.output();  
128.  
129.        System.out.println("是否是上三角矩阵");  
130.        System.out.println(test1.isTriangular());  
131.  
132.        System.out.println("是否是对称矩阵");  
133.        System.out.println(test1.isSymmetry());  
134.  
135.        System.out.println("----------------------");  
136.  
137.        Matrix test2 = new Matrix();  
138.  
139.        test2.output();  
140.  
141.        System.out.println(test2.isTriangular());  
142.        System.out.println(test2.isSymmetry());  
143.          
144.        System.out.println("----------------------");  
145.          
146.        Matrix test3 = new Matrix(4);  
147.        Matrix test4 = new Matrix(4);  
148.          
149.        test3.add(test2);  
150.          
151.        System.out.println("矩阵1");  
152.        test3.output();  
153.        System.out.println("矩阵2");  
154.        test4.output();  
155.          
156.        System.out.println("矩阵相加");  
157.        test3.add(test4);  
158.          
159.        test3.output();  
160.    }  
161.  
162.}  
 
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java 矩阵[多维数组]源代码 的相关文章

随机推荐

  • C++ 日期 & 时间

    C 标准库没有提供所谓的日期类型 C 继承了 C 语言用于日期和时间操作的结构和函数 为了使用日期和时间相关的函数和结构 需要在 C 程序中引用
  • 亚马逊AWS营收1700亿,阿里云213亿,差距巨大能追赶吗? ...

    信息科技正在从移动互联向万物互联转变 在这个新时代 国内BAT三大互联网巨头在去年纷纷调整云战略 腾讯新成立云与智慧产业事业群积极面向产业互联网转型后 继腾讯提升云服务地位后 随后阿里巴巴和百度也做出相应调整 阿里云升级为阿里云智能事业群
  • 灵星之光-1:调制解调、卷积神经网络异曲同工

    无线通信中的解调 以QAM调制为例 QAM编码的个数 类似图像分类中的类别的个数 调制的过程 类似 深度学习的过程 不同的是 通信中的模型 不需要训练 特征是直接预先编码好了 解调的过程 就是 分类的过程 根据收到的各种变形的电磁波的波形
  • Springboot中利用AOP创建日志文件log4j

    Springboot中利用AOP创建日志文件log4j pom xml文件导入依赖
  • shell 多行注释

    在写 shell 脚本的时候 经常需要注释多行命令 但在每一行前输入 很不方便 1 DOCUMENT 可以采用 HERE DOCUMENT 特性 实现多行注释 这是比较稳妥的作法 比如 bin bash lt lt COMMENT your
  • 火焰检测的相关步骤及算法综述

    引言 随着人类社会的发展进步 火灾成为了不可忽视的多发性问题 火灾一次次展示了其对于人员伤亡和财产的巨大破坏性 火灾的预防和检测一直是人类与火灾斗争过程中关注的焦点 1 近些年来 随着数字通信技术 计算机技术的发展 数字图像处理技术获得了广
  • Yolo系列目标检测 V1-V8

    当two stage proposal detection 系列的算法在目标检测界大展身手的时候 不禁会有人问道 Why we have to train proposal first 于是 便有学者展开了关于one stage算法的研究
  • 修改jupyter notebook的默认路径

    前言 由于不想占用C盘空间 所以想修改jupyter notebook的默认路径 第一次打开anaconda中自带的jupyter notebook 默认路径都是C Users Admin 自己的用户名 新建想默认打开的文件夹 在你想以后默
  • N沟道和P沟道MOS FET开关电路

    在电路中常见到使用MOS FET场效应管作为开关管使用 下面举例进行说明 如图1所示 使用了P沟道的内置二极管的电路 此处二极管的主要作用是续流作用 电路是Li电池充放电电路 当外部电源断开时采用Li电池进行内部供电 即 5V电源断开后Q1
  • python做量化交易干货分享

    python做量化交易干货分享 http www newsmth net nForum article Python 128763 最近程序化交易很热 量化也是我很感兴趣的一块 国内量化交易的平台有几家 我个人比较喜欢用的是JoinQuan
  • Java、解一元二次方程

    可以使用下面的公式求一元二次方程 ax 2 bx c 0 的两个根 r1 b b 2 4ac 2a r2 b b 2 4ac 2a b 2 4ac 称作一元二次方程的判别式 如果它是正值 那么一元二次方程就有两个实数根 如果它为 0 方程式
  • eclipse代码格式化的注释缩进问题

    未修改前ctrl shift f格式化代码 注释缩进不能和代码保持一致 拿到要被转换的字符串 Scanner scanner new Scanner System in String str scanner nextLine 通过内存流实现
  • vue3 props传入的组件无法正常刷新

    问题描述 vue3 写入的数据无法正常渲染 但是从子组件获取正常 使用props导入 解决方案 在setup导出的时候 直接导入props 而不是导入props 变量 错误用法 props var1 let var1 张三 setup re
  • phpstudy安装教程

    1 下载phpstudy 2 安装文件 3 把pikachu文件解压到phpstudy phptutorial WWW 文件名字改成pikachu 4 启动 MySQL管理器 输入账号密码 确定 5 打开浏览器 输入127 0 0 1 pi
  • 微信开放平台_第三方平台授权流程_接口调用令牌

    六 接口调用令牌 6 1 官网说明 在公众号 小程序接口调用令牌 authorizer access token 失效时 可以使用刷新令牌 authorizer refresh token 获取新的接口调用令牌 注意 authorizer
  • Qt开发环境下载和安装

    文档下载地址 https download csdn net download blackbattery 10439812 Qt是跨平台的图形开发库 目前由Digia全资子公司 Qt Company 独立运营 官方网址 http www q
  • 关于C/C++标识符、常量、变量的理解

    1 标识符是由字母和数字构成的序列 第一个字符必须是英文字母 下划线 也被看成是字母 大写字母和小写字母是不同的 标识符可以为任意长度 对于内部标识符来说 至少前31 个字母是有效的 在某些实现中 有效的字符数可能更多 2 在程序执行过程中
  • 数组组成的最小数字

    题目 最小数字 给定一个整型数组 请从该数组中选择3个元素组成最小数字并输出 如果数组长度小于3 则选择数组中所有元素来组成最小数字 输入描述 一行用半角逗号分割的字符串记录的整型数组 0 lt 数组长度 lt 100 0 lt 整数的取值
  • 【TypeScript】项目中对于TypeScript的打包处理

    webpack 通常情况下 实际开发中我们都需要使用构建工具对代码进行打包 TS同样也可以结合构建工具一起使用 下边以webpack为例介绍一下如何结合构建工具使用TS 步骤 初始化项目 进入项目根目录 执行命令 npm init y 主要
  • java 矩阵[多维数组]源代码

    1 import java util Random 2 3 矩阵类 4 public class Matrix 5 6 private int matrix 7 8 Random random new Random 9 10 构造方法 11