java作业矩阵类

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

posted on 2010-01-17 17:11  画一个圆圈  阅读(293)  评论(0编辑  收藏  举报

导航