矩阵相乘原理及实现

本文介绍了矩阵相乘的基本原理,并详细讲解了如何使用Java数组实现矩阵相乘的过程,适合对线性代数和Java编程感兴趣的读者。
摘要由CSDN通过智能技术生成

矩阵相乘原理和Java实现

矩阵相乘原理

已知矩阵A[3 X 2]和矩阵B[2 X 3],如下所示:

A是3行2列矩阵
A = {
    a00    a01
    a10    a11
    a20    a21
}

B是2行3列矩阵
B = {
    b00    b01    b02
    b10    b11    b12
}

矩阵相乘,A的行与B的列相乘,形成一个 3 X 3的新矩阵,矩阵元素为:
C = {
    c00    c01    c02
    c10    c11    c12
    c20    c21    c22
}
其中A,B,C矩阵元素关系如下:
c00 = a00 * b00 + a01 * b10		-- A的第一行乘上B的第一列得到C00
c01 = a00 * b01 + a01 * b11		-- A的第一行乘上B的第二列得到C01
c02 = a00 * b02 + a01 * b12		-- A的第一行乘上B的第三列得到C02

c10 = a10 * b00 + a11 * b10		-- A的第二行乘上B的第一列得到C10
c11 = a10 * b01 + a11 * b11		-- A的第二行乘上B的第二列得到C11
c12 = a10 * b02 + a11 * b12		-- A的第二行乘上B的第三列得到C12

c20 = a20 * b00 + a21 * b10		-- A的第三行乘上B的第一列得到C20
c21 = a20 * b01 + a21 * b11		-- A的第三行乘上B的第二列得到C21
c22 = a20 * b02 + a21 * b12		-- A的第三行乘上B的第三列得到C22

栗子如下:

A = {
	1	2
	2	3
	4   5
}
B = {
	2	2	1
	3	4 	3
}

A * B = {
	1 * 2 + 2 * 3	1 * 2 + 2 * 4	1 * 1 + 2 * 3
	2 * 2 + 3 * 3 	2 * 2 + 3 * 4   2 * 1 + 3 * 3
    4 * 2 + 5 * 3	4 * 2 + 5 * 4	4 * 1 + 5 * 3
}

矩阵相乘Java数组实现

/**

- 矩阵相乘
- A的列数必须和B的行数相同
- A的行数和B的列数决定了新的矩阵的行和列
- 矩阵的规则:
  A的每一行和B的每一列对应元素相乘的和构成一个元素
  例如:A是4 * 3的矩阵
  A = {
  	a11	a12	a13
  	a21	a22	a23
  	a31	a32	a33
  	a41	a42	a43
  }
  B是3 * 4的矩阵
  B = {
  	b11	b12	b13	b14
  	b21	b22	b23	b24
  	b31	b32	b33	b34
  }
  A * B = 每个元素的规则 => A的一行分别和B的一列进行相乘再相加 => a11 * b11 + a12 * b21 + a13 * b31
  */
public int[][] getMatrix(int[][] A, int[][] B){
   
    if(A == null || B == null)
        return null;
    if(A[0].length !&
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值