矩阵相乘的问题
只有当两个行列式,只相差一行(或一列)元素不同时,才可以直接相加(相同的行(或列)不变,不相同的行(列),元素分别相加)。
拓展资料
两个矩阵的相加和相乘的方式:
//两个矩阵相加和相乘
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(" ");
2023-08-15 广告