import java.util.Random;
//矩阵类
public class Matrix {
private int[][] matrix;
Random random = new Random();
// 构造方法
public Matrix() {
matrix = new int[3][3];
}
public Matrix(int n) {
matrix = new int[n][n];
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
matrix[i][j] = random.nextInt(100);
}
}
}
public Matrix(int n, int m) {
matrix = new int[n][m];
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] = random.nextInt(100);
}
}
}
public int[][] getMatrix() {
return matrix;
}
// 输出矩阵中所有元素
public void output() {
for (int i = 0; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
System.out.print(matrix[i][j] + "\t");
}
System.out.println();
}
}
// 求一个矩阵的转置矩阵
public Matrix transpose() {
int n = matrix.length;
int m = matrix[0].length;
Matrix transMatrix = new Matrix(n, m);
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
transMatrix.getMatrix()[i][j] = matrix[j][i];
}
}
return transMatrix;
}
// 判断一个矩阵是否为上三角矩阵
public boolean isTriangular() {
// 用相反的思路进行判断
for (int i = 1; i < matrix.length; i++) {
for (int j = 0; j < i; j++) {
if (matrix[i][j] != 0) {
return false;
}
}
}
return true;
}
// 判断是否为对称矩阵
public boolean isSymmetry() {
for (int i = 1; i < matrix.length; i++) {
for (int j = 0; j < matrix[i].length; j++) {
if (matrix[i][j] != matrix[j][i]) {
return false;
}
}
}
return true;
}
// 矩阵的相加
public void add(Matrix b) {
int[][] matrixOfB = b.getMatrix();
int n = matrixOfB.length;
int m = matrixOfB[0].length;
if (n != matrix.length || m != matrix[0].length) {
System.out.println("矩阵的长度不一致,不能相加");
} else {
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
matrix[i][j] += matrixOfB[i][j];
}
}
}
}
public static void main(String[] args) {
//测试
Matrix test1 = new Matrix(4);
System.out.println("原始矩阵");
test1.output();
Matrix transMatrix = test1.transpose();
System.out.println("转置矩阵");
transMatrix.output();
System.out.println("是否是上三角矩阵");
System.out.println(test1.isTriangular());
System.out.println("是否是对称矩阵");
System.out.println(test1.isSymmetry());
System.out.println("----------------------");
Matrix test2 = new Matrix();
test2.output();
System.out.println(test2.isTriangular());
System.out.println(test2.isSymmetry());
System.out.println("----------------------");
Matrix test3 = new Matrix(4);
Matrix test4 = new Matrix(4);
test3.add(test2);
System.out.println("矩阵1");
test3.output();
System.out.println("矩阵2");
test4.output();
System.out.println("矩阵相加");
test3.add(test4);
test3.output();
}
}
分享到:
相关推荐
本代码展示了矩阵的转置,通过提示,输入想要转置的矩阵,完成该矩阵的转置
该程序实现了Java的基本运算: 1.矩阵的相加。 2.矩阵的相减。 3.矩阵于数的相乘。 4.矩阵于矩阵的相乘。 5.矩阵的求秩。 6.矩阵的求逆(能求2阶以上的)。 7.矩阵的转秩。
用java实现矩阵的转置和矩阵的相乘,就是一个很简单的小程序,初次学java,试着编的,比较简单,仅供参考
java实现矩阵.pdf
java实现矩阵[参考].pdf
JAVA实现矩阵加减乘除求逆运算.doc
java实现矩阵的加-减-乘-转置运算.docx
Java 实现的矩阵运算,加减乘逆反阵。
简单程序,可提供参考
用动态规划思想解决矩阵连乘的问题。………………………………
利用JAVA实现的一个简单的矩阵计算器,可以实现矩阵间的加法,减法和乘法,有详细的注释
主要介绍了Java实现的求逆矩阵算法,涉及java基于数组的矩阵遍历与运算相关操作技巧,需要的朋友可以参考下
编写一个方阵类,其中封装有对方阵进行操作的方法,包括: 两个n阶方阵的加;... 求方阵的转置矩阵; toString()方法按行、列描述矩阵(其中包含\n字符)。 试分别就3阶方阵和4阶方阵的数据验证类设计。
矩阵转置的java实现,使用java实现矩阵的转置运算
用C++实现的矩阵链相乘算法,并包含大量的注释,对理解程序很有帮助
用Java2D实现的图形沿某一直线的伸缩变换
使用java实现矩阵行列式的计算,下载者可根据自身需要进行修改
主要介绍了Java矩阵连乘问题(动态规划)算法,结合实例形式分析了java实现矩阵连乘的算法原理与相关实现技巧,需要的朋友可以参考下