对于两个矩阵之间的四个运算,加减乘和数乘
主函数
public class Juzhen {
public static void main(String[] args)
{
// TODO Auto-generated method stub
int a[][]=jzsr();
int b[][]=jzsr();
//四个做运算的函数都放在Juzhen这个class里,所有要用Juzhen.xxx()
Juzhen.jzsx(a, b);
Juzhen.jzjiafa(a, b);
Juzhen.jzjianfa(a, b);
Juzhen.jzcf(a, b);
}
- 矩阵的输入函数
public static int[][] jzsr()
{
Scanner in= new Scanner(System.in);
//new了一个叫in的对象,将system.in作为参数传给Scanner这个类
//然后就可以用对象in里的成员变量nextLint()了
int i;
int j;
System.out.println("输入矩阵的长和宽");
int x[][]=new int [in.nextInt()][in.nextInt()];
//在定义矩阵的行和列时直接用in.nextInt()来获取键盘输入
//省去两个变量的定义
System.out.println("输入矩阵");
for(i=0;i<x.length;i++) //x.length是矩阵x的行
for(j=0;j<x[0].length;j++) //x[0].length是矩阵第1行的列
x[i][j]=in.nextInt();
return x;
}
- 矩阵的输出函数
public static void jzsc(int a[][])
{
int i;
int j;
for(i=0;i<a.length;i++)
{
for(j=0;j<a[0].length;j++)
System.out.print(a[i][j]+" ");
System.out.println(" ");
}
}
- 矩阵的乘法函数
private static void jzcf(int a[][], int b[][])
{
int k; //第一个矩阵的行
int i; //即是第一个矩阵的列,又是第二个矩阵的行
int o; //第二个矩阵的列
int [][] c=new int [a.length][b[0].length];
//定义一个矩阵c来存放a和b相乘的结果
if(a[0].length==b.length) //判断a和b能否相乘
{
for(k=0;k<a.length;k++)
for(i=0;i<b[0].length;i++)
for(o=0;o<a[0].length;o++)
c[k][i]=c[k][i]+a[k][i]*b[i][o];
System.out.println("矩阵相乘得:");
Juzhen.jzsc(c); //调用输出函数并将矩阵c的地址作为参数给它
}
else
System.out.println("矩阵不可相乘!");
}
- 矩阵的数乘函数
private static void jzsx(int a[][], int b[][])
{
int i;
int j;
int [][] c=new int [a.length][a[0].length];
if(a.length==b.length||a[0].length==b[0].length)
{
for(i=0;i<a.length;i++)
for(j=0;j<a[0].length;j++)
c[i][j]=c[i][j]+a[i][j]*b[i][j];
System.out.println("矩阵数乘得:");
Juzhen.jzsc(c);
}
else
System.out.println("矩阵不可数乘!");
}
- 矩阵的加法函数
private static void jzjianfa(int a[][], int b[][])
{
int i;
int j;
int [][] c=new int [a.length][a[0].length];
if(a.length==b.length||a[0].length==b[0].length)
{
for(i=0;i<a.length;i++)
for(j=0;j<a[0].length;j++)
c[i][j]=c[i][j]+a[i][j]+b[i][j];
System.out.println("矩阵相加得:");
Juzhen.jzsc(c);
}
else
System.out.println("矩阵不可相加!");
}
- 矩阵的减法函数
private static void jzjiafa(int a[][], int b[][])
{
int i;
int j;
int [][] c=new int [a.length][a[0].length];
if(a.length==b.length||a[0].length==b[0].length)
{
for(i=0;i<a.length;i++)
for(j=0;j<a[0].length;j++)
c[i][j]=c[i][j]+a[i][j]-b[i][j];
System.out.println("矩阵相减得:");
Juzhen.jzsc(c);
}
else
System.out.println("矩阵不可相减!");
}
} //这个括号是class Juzhen{ }中的
- eclipes测试