java矩阵_JAVA实现矩阵

这是一个Java实现的矩阵类,包括构造方法、输出矩阵、求转置矩阵、判断上三角矩阵和对称矩阵的功能。示例代码展示了如何创建、操作和打印矩阵,并通过main方法进行测试。
摘要由CSDN通过智能技术生成

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();

}

}

分享到:

18e900b8666ce6f233d25ec02f95ee59.png

72dd548719f0ace4d5f9bca64e1d7715.png

2011-09-07 15:09

浏览 16330

评论

2 楼

南楚懿

2015-04-14

38687d1a1ad71d37c86f287056834d1a.gif

1 楼

josico

2013-05-19

矩阵 如何进行与操作呢?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值