实现两个3*3矩阵乘法
时间: 2024-01-18 09:43:24 浏览: 36
假设有两个3*3矩阵A和B,它们的乘积C为:
C = A * B
则C中每个元素c(i,j)的计算方法为:
c(i,j) = a(i,1) * b(1,j) + a(i,2) * b(2,j) + a(i,3) * b(3,j)
下面是Python代码实现:
```python
A = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
B = [[9, 8, 7], [6, 5, 4], [3, 2, 1]]
C = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
for i in range(3):
for j in range(3):
for k in range(3):
C[i][j] += A[i][k] * B[k][j]
print(C)
```
输出结果为:
```
[[30, 24, 18], [84, 69, 54], [138, 114, 90]]
```
相关问题
c++实现两个3*3矩阵乘法
假设两个矩阵分别为A和B,它们的乘积为C。则C的每个元素c[i][j]的计算方法为:
c[i][j] = a[i][1]*b[1][j] + a[i][2]*b[2][j] + a[i][3]*b[3][j]
具体实现代码如下:
#include <stdio.h>
int main()
{
int a[3][3] = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };
int b[3][3] = { {9, 8, 7}, {6, 5, 4}, {3, 2, 1} };
int c[3][3] = { {0, 0, 0}, {0, 0, 0}, {0, 0, 0} };
int i, j, k;
// 矩阵乘法
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
for (k = 0; k < 3; k++)
{
c[i][j] += a[i][k] * b[k][j];
}
}
}
// 输出结果
printf("Matrix A:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
printf("Matrix B:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", b[i][j]);
}
printf("\n");
}
printf("Matrix C = A * B:\n");
for (i = 0; i < 3; i++)
{
for (j = 0; j < 3; j++)
{
printf("%d ", c[i][j]);
}
printf("\n");
}
return 0;
}
matlab实现两个3*3矩阵对应元素相乘后相加
可以使用Matlab中的矩阵乘法运算符`.*`和`sum`函数实现两个3*3矩阵对应元素相乘后相加的操作。具体实现步骤如下:
1. 定义两个3*3矩阵A和B,元素分别为:
```
A = [1 2 3; 4 5 6; 7 8 9];
B = [9 8 7; 6 5 4; 3 2 1];
```
2. 对A和B进行对应元素相乘操作,可以使用矩阵乘法运算符`.*`:
```
C = A .* B;
```
3. 对C矩阵进行相加操作,可以使用`sum`函数:
```
D = sum(C(:));
```
其中,`C(:)`是将矩阵C转换为一维数组,方便进行相加操作。
最终得到的D即为两个3*3矩阵对应元素相乘后相加的结果。在本例中,D的值为:
```
D = 165
```