矩阵的运算(JAVA实训)
实训目的:
熟悉和掌握Java的基本语法,熟悉类的定义与对象的使用。
实训要求:
设计一个类,该类中有行数和列数两个属性,以及有多个构
造方法,能实现矩阵的加法、减法、矩阵与数的乘法、矩阵与矩阵的乘法及矩阵的转置。

matrix.java
package program1
public class matrix {
private int l1,r1
private int [][] a
public matrix(int l,int r,int[][] a){
this.l1=l
this.r1=r
this.a=a
}
public void add(int l2,int r2,int[][] b){
int [][] c=new int[1005][1005]
if(l1!=l2||r1!=r2)
System.out.println("矩阵错误!")
else
{
for(int i=0i<l1i++)
for(int j=0j<r1j++)
c[i][j]=a[i][j]+b[i][j]
print(c)
}
}
public void subtraction(int l2,int r2,int[][] b){
int [][] c=new int[1005][1005]
if(l1!=l2||r1!=r2)
System.out.println("矩阵错误!")
else
{
for(int i=0i<l1i++)
for(int j=0j<r1j++)
c[i][j]=a[i][j]-b[i][j]
print(c)
}
}
public void mathmultiply(int math){
int [][] c=new int[1005][1005]
for(int i=0i<l1i++)
for(int j=0j<r1j++)
c[i][j]=a[i][j]*math
print(c)
}
public void matrixmultiply(int l2,int r2,int[][] b){
int [][] c=new int[1005][1005]
if(r1!=l2)
System.out.println("矩阵错误!")
else
{
for(int i=0i<l1i++){
for(int k=0k<r2k++){
c[i][k]=0
for(int j=0j<r1j++)
c[i][k]+=a[i][j]*b[j][k]
}
}
System.out.println(l1+" "+r1+" "+l2+" "+r2)
for(int i=0i<l1i++)
{
for(int j=0j<r2j++)
System.out.print(c[i][j]+" ")
System.out.println()
}
}
}
public void transpose(){
int [][] c=new int[1005][1005]
for(int i=0i<l1i++)
for(int j=0j<r1j++)
c[i][j]=a[j][i]
print(c)
}
public void print(int[][] a){
for(int i=0i<l1i++)
{
for(int j=0j<r1j++)
System.out.print(a[i][j]+" ")
System.out.println()
}
}
}
Test.java
package program1
import java.util.Scanner
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
int l1,r1,l2,r2,flag
int [][] a=new int[1005][1005]
int [][] b=new int[1005][1005]
Scanner sc=new Scanner(System.in)
System.out.println("请输入矩阵1的行l1:")
l1=sc.nextInt()
System.out.println("请输入矩阵1的列r1:")
r1=sc.nextInt()
System.out.println("请输入矩阵1:")
for(int i=0i<l1i++)
for(int j=0j<r1j++)
a[i][j]=sc.nextInt()
System.out.println("请选择要进行的操作:")
System.out.println("1:矩阵相加。")
System.out.println("2:矩阵相减。")
System.out.println("3:矩阵与数的乘法。")
System.out.println("4:矩阵与矩阵的乘法。")
System.out.println("5:矩阵的转置。")
flag=sc.nextInt()
if(flag==1)
{
System.out.println("请输入矩阵2的行l2:")
l2=sc.nextInt()
System.out.println("请输入矩阵2的列r2:")
r2=sc.nextInt()
System.out.println("请输入矩阵2:")
for(int i=0i<l2i++)
for(int j=0j<r2j++)
b[i][j]=sc.nextInt()
matrix m1=new matrix(l1,r1,a)
m1.add(l2,r2,b)
}
if(flag==2)
{
System.out.println("请输入矩阵2的行l2:")
l2=sc.nextInt()
System.out.println("请输入矩阵2的列r2:")
r2=sc.nextInt()
System.out.println("请输入矩阵2:")
for(int i=0i<l2i++)
for(int j=0j<r2j++)
b[i][j]=sc.nextInt()
matrix m1=new matrix(l1,r1,a)
m1.subtraction(l2,r2,b)
}
if(flag==3)
{
int math
System.out.println("请输入要相乘的数 math:")
math=sc.nextInt()
matrix m1=new matrix(l1,r1,a)
m1.mathmultiply(math)
}
if(flag==4)
{
System.out.println("请输入矩阵2的行l2:")
l2=sc.nextInt()
System.out.println("请输入矩阵2的列r2:")
r2=sc.nextInt()
System.out.println("请输入矩阵2:")
for(int i=0i<l2i++)
for(int j=0j<r2j++)
b[i][j]=sc.nextInt()
matrix m1=new matrix(l1,r1,a)
m1.matrixmultiply(l2,r2,b)
}
if(flag==5)
{
matrix m1=new matrix(l1,r1,a)
m1.transpose()
}
}
}





Comments NOTHING