import java.io.*;
import java.io.*;
public class Matrix //定义矩阵类
{
int m;
int n;
int[][] num;
Matrix(int j,int k) //构造函数
{
m=j;
n=k;
num=new int[m][n];
}
public static void cinMatrix(Matrix a) //输入矩阵 输入时必须一个一个的输入
{
try
{
for(int i=0;i<a.m;i++)
{
for(int j=0;j<a.n;j++)
{
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
a.num[i][j]=Integer.parseInt(br.readLine());
}
}
}
catch (IOException ex)
{
}
}
public static Matrix plus(Matrix a , Matrix b) //矩阵的加法
{
if(a.m!=b.m || a.n!=b.n)
{
System.out.println("error");
return null;
}
else
{
Matrix c=new Matrix(a.m,a.n);
for(int i=0;i<a.m;i++)
{
for(int j=0;j<a.n;j++)
{
c.num[i][j]=a.num[i][j]+b.num[i][j];
}
}
return c;
}
}
public static Matrix minus(Matrix a , Matrix b) //矩阵乘法
{
if(a.m!=b.m || a.n!=b.n)
{
System.out.println("error");
return null;
}
else
{
Matrix c=new Matrix(a.m,a.n);
for(int i=0;i<a.m;i++)
{
for(int j=0;j<a.n;j++)
{
c.num[i][j]=a.num[i][j]-b.num[i][j];
}
}
return c;
}
}
public static Matrix multiply(Matrix a , Matrix b) //矩阵乘法
{
if(a.n!=b.m)
{
System.out.println("error");
return null;
}
else
{
Matrix c=new Matrix(a.m,a.n);
for(int i=0;i<a.m;i++)
for(int j=0;j<b.n;j++)
{
c.num[i][j]=0;
for(int k=0;k<a.n;k++)
c.num[i][j]+=a.num[i][k]*b.num[k][j];
}
return c;
}
}
public static void print(Matrix a)
{
for(int i=0;i<a.m;i++)
{
for(int j=0;j<a.n;j++)
{
System.out.print(a.num[i][j]+" ");
}
System.out.println();
}
}
public static void main(String[] args) //测试函数
{
Matrix m1=new Matrix(3,3);
Matrix m2=new Matrix(3,3);
Matrix.cinMatrix(m1);
Matrix.cinMatrix(m2);
Matrix m3=Matrix.plus(m1,m2);
Matrix m4=Matrix.minus(m1,m2);
Matrix m5=Matrix.multiply(m1,m2);
Matrix.print(m3);
System.out.println();
Matrix.print(m4);
System.out.println();
Matrix.print(m5);
}
}
本篇文章来源于:开发学院 http://edu.codepub.com 原文链接:http://edu.codepub.com/2009/1019/16481.php