您的位置:首页 > 编程语言 > Java开发

JAVA 求两个矩阵相乘的积

2014-11-24 14:41 232 查看
import java.util.*;

import javax.swing.*;

public class multiMetrix {

//矩阵相乘方法

public static void multiMetrixAandB(int metrixA[][] , int metrixB[][]){

int result[][] = new int[metrixA.length][metrixB[0].length];

int x,i,j,tmp=0;

for(i =0;i<metrixA.length;i++){

for(j = 0;j<metrixB[0].length;j++){

for( x=0;x<metrixB.length;x++)

tmp += metrixA[i][x] * metrixB[x][j];//矩阵AB中a_ij的值等于矩阵A的i行和矩阵B的j列的乘积之和

result[i][j] = tmp;

tmp = 0; //中间变量,每次使用后都得清零

}

}

//打印计算后的矩阵

System.out.println("\n"+"矩阵A*B的值为:");

for( i=0;i<result.length;i++){

for(j=0;j<result[i].length;j++){

System.out.print(result[i][j] + " ");

}

System.out.print("\n");

}

}

public static void main(String args[]){

Scanner input = new Scanner(System.in);

System.out.print("请输入矩阵A的行数和列数:");

int row = input.nextInt();

int column = input.nextInt();

System.out.println("请输入"+row +"行" + column+"列的矩阵A:");

int metrixA[][] = new int [row][column];//NEW一个数组,保存矩阵A

for(int i =0;i<row;i++)

for(int j =0;j<column;j++)

metrixA[i][j] = input.nextInt();

System.out.print("请输入矩阵B的行数和列数:");

int rowB = input.nextInt();

if(rowB != column)

JOptionPane.showMessageDialog(null,"矩阵A(m*n)和矩阵B(u*v)相乘需要满足 n==u!即A(m*n)-B(n*k)","温馨提示",JOptionPane.INFORMATION_MESSAGE);

int columnB = input.nextInt();

System.out.println("请输入"+rowB +"行" + columnB+"列的矩阵B:");

int metrixB[][] = new int [rowB][columnB];//NEW一个数组,保存矩阵B

for(int i =0;i<rowB;i++)

for(int j =0;j<columnB;j++)

metrixB[i][j] = input.nextInt();

multiMetrixAandB(metrixA,metrixB);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: