用Java实现矩阵乘法

这篇具有很好参考价值的文章主要介绍了用Java实现矩阵乘法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

矩阵相乘需注意:
        1、当矩阵A的列数(column)等于矩阵B的行数(row)时,A与B可以相乘。
        2、矩阵C的行数等于矩阵A的行数,C的列数等于B的列数。
        3、乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和

设a为2*3的矩阵 b为3*2的矩阵 c矩阵为a*b的结果

a=[a11,a12,a13]
    [a21,a22,a23]

b=[b11,b12]
    [b21,b22]
    [b31,b32]

c=[a11*b11+a12*b21+a13*b31,a11*b12+a12*b22+a13*b32]
    [a21*b11+a22*b21+a23*b31,a11*b21+a22*b22+a23*b32]

代码实现(从控制台输入矩阵):

public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		System.out.println("输入矩阵A的行数:");
		int x = input.nextInt();
		System.out.println("输入矩阵A的列数(B的行数):");
		int y = input.nextInt();
		System.out.println("输入矩阵B的列数:");
		int z = input.nextInt();
		//用二位数组存储矩阵
		int[][] a = new int[x][y];
		int[][] b = new int[y][z];
		int[][] c = new int[x][z];
		System.out.println("输入A矩阵");
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {
				a[i][j] = input.nextInt();
			}
		}
		System.out.println("输入B矩阵");
		for (int i = 0; i < b.length; i++) {
			for (int j = 0; j < b[i].length; j++) {
				b[i][j] = input.nextInt();
			}
		}
		 
		//根据规律用三个for循环实现矩阵相乘
		for (int i = 0; i < a.length; i++) {
			for (int j = 0; j < a[i].length; j++) {
				for (int k = 0; k < b[j].length; k++) {
					c[i][k] += a[i][j] * b[j][k];
				}	
			}
		}
		//将结果输出到控制台
        System.out.println("结果:");
		for (int[] row : c){
			for (int cloumn : row) {
				System.out.print(cloumn + "\t");
			}
			System.out.println();
		}
		
	}

 随机生成矩阵A和B:

Random random = new Random();
//随机生成矩阵A并输出
System.out.println("矩阵A:");
for (int i = 0; i < a.length; i++) {
	for (int j = 0; j < a[i].length; j++) {
		a[i][j] = random.nextInt(10);//10以内的随机整数
		System.out.print(a[i][j] + "\t");
	}
	System.out.println();
}
//随机生成矩阵B并输出
System.out.println("矩阵B:");
for (int i = 0; i < b.length; i++) {
	for (int j = 0; j < b[i].length; j++) {
		b[i][j] = random.nextInt(10);//10以内的随机整数
		System.out.print(b[i][j] + "\t");
	}
	System.out.println();
}

 文章来源地址https://www.toymoban.com/news/detail-401003.html

到了这里,关于用Java实现矩阵乘法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包