矩阵算法小练.
import java.util.Scanner;
public class Matrix {
public double [][] datas;
public int rows;
public int cols;
public Matrix (int r, int c){
datas = new double [r][c];
this .rows = r;
this .cols = c;
}
public Matrix multip (Matrix X){
if (this .cols != X.rows ){
return null ;
}
Matrix c = new Matrix(this .rows,X.cols);
for (int i = 0 ; i<this .rows;i++){
for (int j = 0 ;j<X.cols;j++){
for (int k = 0 ;k<X.rows;k++){
c.datas[i][j] += this .datas[i][k]*X.datas[k][j];
}
}
}
return c;
}
public void display (){
if (this == null ) return ;
for (int i = 0 ;i<this .rows;i++){
for (int j = 0 ;j<this .cols;j++){
System.out .print(this .datas[i][j]+"\t" );
}
System.out .println();
}
}
public static void main (String[] args) {
Scanner scan = new Scanner(System.in );
System.out .println("请输入要相乘的第一个矩阵..." );
System.out .println("请输入矩阵的行数。。。" );
int r = scan.nextInt();
System.out .println("请输入矩阵的列数。。。" );
int c = scan.nextInt();
Matrix m = new Matrix(r,c);
System.out .println("请以此输入矩阵元素。。。" );
for (int i = 0 ; i<r;i++){
for (int j = 0 ; j<c;j++){
m.datas[i][j] = scan.nextDouble();
}
}
m.display();
System.out .println("请输入要相乘的另一个矩阵..." );
System.out .println("请输入矩阵的行数。。。" );
int r1 = scan.nextInt();
System.out .println("请输入矩阵的列数。。。" );
int c1 = scan.nextInt();
Matrix m1 = new Matrix(r1,c1);
System.out .println("请以此输入矩阵元素。。。" );
for (int i = 0 ; i<r1;i++){
for (int j = 0 ; j<c1;j++){
m1.datas[i][j] = scan.nextDouble();
}
}
m1.display();
System.out .println("相乘的结果是: " );
m.multip(m1).display();
}