您的位置:首页 > 其它

两个矩阵的相加和相乘

2013-09-10 19:04 501 查看
//两个矩阵相加和相乘
public class TestMatrixOperation
{
	public static void main(String[] args) 
	{
		int [][]matrix1=new int[5][5];
		int [][]matrix2=new int[5][5];
		//随机分配值
		
		for(int i=0;i<matrix1.length;i++)
			for(int j=0;j<matrix2.length;j++){
			matrix1[i][j]=(int)(Math.random()*10);
		    matrix2[i][j]=(int)(Math.random()*10);
		}
		//两个矩阵相加并输出结果
		int[][]resultMatrix=addMatrix(matrix1,matrix2);
		System.out.println("两个矩阵相加:");
		printResult(matrix1,matrix2,resultMatrix,'+');
		//两个矩阵相乘并输出结果
		resultMatrix=multiplyMatrix(matrix1,matrix2);
		System.out.println("两个矩阵相乘:");
		printResult(matrix1,matrix2,resultMatrix,'*');

	}
	//两个矩阵相加的方法
	public static int[][] addMatrix(int[][] m1,int[][] m2){
	int[][]result=new int[m1.length][m1[0].length];
	for(int i=0;i<result.length;i++)
		//for(int j=0;j<result.length;j++)
		for(int j=0;j<result[0].length;j++)
		result[i][j]=m1[i][j]+m2[i][j];
	return result;
	}
	//两个矩阵相乘的方法
	public static int[][] multiplyMatrix(int[][] m1,int[][] m2){
	int[][]result=new int[m1.length][m2[0].length];
	for(int i=0;i<m1.length;i++)
		for(int j=0;j<result.length;j++)
		for(int k=0;k<result[1].length;k++)
		result[i][j]+=m1[i][k]*m2[k][j];
	return result;
	}
	//输出结果
	public static void printResult(
		int[][] m1,int[][] m2,int[][] m3,char op){
		System.out.println("第一个矩阵是:");
		for(int i=0;i<m1.length;i++){
			for(int j=0;j<m1[0].length;j++)
			System.out.print(" "+m1[i][j]);
		System.out.println(" ");
		}
		System.out.println("第二个矩阵是:");
		for(int i=0;i<m2.length;i++){
			for(int j=0;j<m2[0].length;j++)
			System.out.print(" "+m2[i][j] );
		System.out.println(" ");
		}
		System.out.println("两个矩阵做"+op+"运算");
		for(int i=0;i<m3.length;i++){
			for(int j=0;j<m3[0].length;j++)
				System.out.print("\t"+m3[i][j]);
			System.out.println(" ");
		}
	}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: