package shiyan7; public class matrix2 { public double [][]a; public matrix2(int row,int col) { this.a = new double[row][col]; } public void set(int row, int col, double value) { this.a[row][col] = value; } public double get(int row,int col) { return this.a[row][col]; } public int width()//返回列数 { return a[0].length; } public int height() { return a.length; } public matrix2 add(matrix2 m)//两矩阵相加 { /* matrix2 matrix; int row = this.a.length > m.a.length ? this.a.length :m.a.length; int col = this.a[0].length > m.a[0].length ? this.a[0].length : m.a[0].length; matrix = new matrix2(row,col); for(int i = 0;i < m.a.length;i++) { for(int j = 0;j < m.a[0].length;j++) { matrix.a[i][j] = m.a[i][j]; } } for(int i = 0;i < m.a.length;i++) { for(int j = 0;j < m.a[0].length;j++) { matrix.a[i][j] += this.a[i][j]; } } return matrix; */ matrix2 t = new matrix2(this.a.length,m.a[0].length); for(int i = 0; i < m.a.length; i++) { for(int j = 0; j < m.a[0].length; j++) { t.set(i, j, this.get(i, j) + m.get(i, j)); } } return t; } public matrix2 multiply(matrix2 m)//两矩阵相乘 { if(this.a[0].length != m.a.length) return null; matrix2 matrix = new matrix2(this.a.length,m.a[0].length); double sum = 0; for(int i = 0;i < this.a.length;i++) { for(int j = 0;j < m.a[0].length;j++) { sum = 0; for(int k = 0;k < m.a.length;k++) { sum += this.a[i][k]*m.a[k][j]; } matrix.a[i][j] = sum; } } return matrix; } public void print() { for(int i = 0;i < a.length;i++) { for(int j = 0;j < a[0].length;j++) { if(j==0) System.out.print(a[i][j]); else System.out.print(" "+a[i][j]); } System.out.println(); } System.out.println(); } public matrix2 transpose() //求转置矩阵 { matrix2 t = new matrix2(this.width(), this.height()); for(int i = 0; i <t.height(); i++) for(int j = 0; j < t.width(); j++) t.set(i, j, this.get(j, i)); return t; } public double[] getMax() { double max = this.get(0, 0); int col = 0; int row = 0; for(int i = 0; i < this.height(); i++) { for(int j = 0; j < this.width(); j++) { if(this.get(i, j) > max) { max = this.get(i, j); col = j; row = i; } } } double[] res = new double[3]; res[0] = col; res[1] = row; res[2] = max; return res; } }