转置矩阵以及判断上三角矩阵

本文介绍了一个矩阵类的实现,包括矩阵的创建、元素获取与设置、转置、判断是否为上三角矩阵和对称矩阵等功能。通过实例展示了矩阵的各种操作及属性判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

public class Matrix {	//矩阵类 
private int element[][]; 
public Matrix(int m,int n){ 
this.element=new int[m][n]; 
} 
public Matrix(int n){this(n,n);} 
public Matrix(int m,int n,int mat[][]){ 
this(m,n); 
for(int i=0;i<mat.length;i++){ 
for(int j=0;j<mat[i].length;j++){ 
this.element[i][j]=mat[i][j]; 
} 
} 
} 

public int get(int i,int j){ 
return this.element[i][j]; 
} 

public void set(int i,int j,int value){ 
this.element[i][j] = value; 
} 

public Matrix transpose(){	//将矩阵转换成转置矩阵,返回一个矩阵类的值 
String str = "转置矩阵" + "\n"; 
Matrix temp = new Matrix(this.element[0].length,this.element.length); 
for(int i=0;i<temp.element.length;i++){ 
for(int j=0;j<temp.element[i].length;j++){ 
temp.element[i][j] = this.element[j][i]; 
} 

} 

return temp; 
} 

public String toString(){ 
String str = "矩阵 Matrix (" + this.element.length + "*" + this.element[0].length + ") : \n"; 
for(int i=0;i<this.element.length;i++){ 
for(int j=0;j<this.element[i].length;j++){ 
str += String.format("%4d", this.element[i][j]); 
} 
str += "\n" ; 
} 
return str; 
} 

public boolean equals(Matrix a){	//判断是否和另一个矩阵相同 
System.out.print("是否和另一个矩阵相同"); 
for(int i=0;i<this.element.length;i++){ 
for(int j=0;j<this.element[i].length;j++){ 
if(this.element[i][j]!=a.element[i][j]) 
return false; 
} 
} 
return true; 
} 

public boolean isUpperTriangularMatrix(){	//判断是否为上三角矩阵 
for(int i=1;i<this.element.length-1;i++){ 
for(int j=0;j<this.element[i].length-1;j++){ 
if(this.element[i][j]==0) 
return true; 
} 
} 
return false; 
} 

public boolean isSymmetricMatrix(){	//判断矩阵是否对称 
System.out.print("是否是对称矩阵"); 
for(int i=0;i<this.element.length;i++){ 
for(int j=0;j<this.element[i].length;j++) 
if(this.element[i][j]!=this.element[j][i]) 
return false; 
} 
return true; 
} 

public static void main(String[] args){	//main方法,程序开始执行 
int m1[][] = {{1,2,3},{4,5,6}}; 
Matrix mata = new Matrix(2,3,m1); 
System.out.print(mata.toString()); 
System.out.print(mata.transpose().toString()); 
System.out.print(mata.isSymmetricMatrix()); 
int m2[][] = {{1,2,3}, 
  {0,5,6}, 
  {0,0,9}}; 
Matrix mata1 = new Matrix(3,3,m2); 
System.out.print(mata1.toString()); 
System.out.print(mata1.isUpperTriangularMatrix()); 
} 
} 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值