软件NetBeans IDE 7.0.1,需要单独写主类。
java扩充例题4.14的功能,实现两个矩阵的相加,两个矩阵的相减,矩阵的转置和矩阵的逆矩阵等运算。
主类:
int[][] matrix1={{2,3,4},{4,6,8},{2,5,6}};
int[][] matrix2={{1,5,2},{5,9,10},{2,3,4}};
Matrix mm=new Matrix();
System.out.println("左矩阵:");
mm.printMatrix(matrix1);
System.out.println("右矩阵:");
mm.printMatrix(matrix2);
int [][]matrix3=mm.matrixAdd(matrix1, matrix2);
System.out.println("左矩阵+右矩阵的结果:");
mm.printMatrix(matrix3);
int[][] matrix4=mm.MatrixSub(matrix1, matrix2);
System.out.println("左矩阵-右矩阵的结果:");
mm.printMatrix(matrix4);
int[][] matrix5=mm.MatriTran(matrix1);
System.out.println("矩阵转置:");
mm.printMatrix(matrix5);
Matrix类:
public class Matrix {
public int[][] matrixAdd(int[][] a,int[][] b){
if(a.length!=b.length||a[0].length!=b[0].length){
return null;
}
int[][] c=new int[a.length][a[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[0].length;j++){
c[i][j]=a[i][j]+b[i][j];
}
}return c;
}
public int[][] MatrixSub(int[][] a,int[][] b){
if(a.length!=b.length||a[0].length!=b[0].length){
return null;
}
int[][] d=new int[a.length][a[0].length];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[0].length;j++){
d[i][j]=a[i][j]-b[i][j];
}
}return d;
}
public int[][] MatriTran(int[][] a){
int[][] e=new int[a[0].length][a.length];
for(int i=0;i<a.length;i++){
for(int j=0;j<a[0].length;j++){
e[i][j]=a[i][j];
}
}
return e;
}
public void printMatrix(int[][] c){
if(c!=null){
for(int i=0;i<c.length;i++){
for(int j=0;j<c[0].length;j++){
System.out.print(" "+c[i][j]);
}
System.out.println();
}
}else{
System.out.println("无效");
}
System.out.println();
}
}