编写程序计算两个矩阵的乘积
时间: 2023-11-19 14:04:32 浏览: 97
以下是 Python 代码实现:
```python
# 定义两个矩阵
matrix1 = [[1, 2], [3, 4], [5, 6]]
matrix2 = [[7, 8, 9], [10, 11, 12]]
# 计算矩阵乘积
result_matrix = [[sum(a * b for a, b in zip(row, col)) for col in zip(*matrix2)] for row in matrix1]
# 输出结果
for row in result_matrix:
print(row)
```
输出结果为:
```
[27, 30, 33]
[61, 68, 75]
[95, 106, 117]
```
说明:这里使用了 Python 中的列表推导式和 zip 函数。zip 函数可以将多个列表中的元素一一对应起来,用于实现矩阵的乘积计算。
相关问题
c语言编写程序计算两个矩阵的乘积
好的,以下是一个简单的 C 语言程序,可以计算两个矩阵的乘积:
```c
#include <stdio.h>
#define ROWS1 3
#define COLS1 2
#define ROWS2 2
#define COLS2 3
int main()
{
int matrix1[ROWS1][COLS1] = {{1, 2}, {3, 4}, {5, 6}};
int matrix2[ROWS2][COLS2] = {{7, 8, 9}, {10, 11, 12}};
int result[ROWS1][COLS2];
// 计算矩阵乘积
for (int i = 0; i < ROWS1; ++i) {
for (int j = 0; j < COLS2; ++j) {
int sum = 0;
for (int k = 0; k < COLS1; ++k) {
sum += matrix1[i][k] * matrix2[k][j];
}
result[i][j] = sum;
}
}
// 输出结果
for (int i = 0; i < ROWS1; ++i) {
for (int j = 0; j < COLS2; ++j) {
printf("%d ", result[i][j]);
}
printf("\n");
}
return 0;
}
```
这个程序中,我们首先定义了两个矩阵 `matrix1` 和 `matrix2`,以及一个用于存储结果的矩阵 `result`。然后使用三重循环计算它们的乘积,并将结果存储在 `result` 变量中。最后,我们使用循环输出计算结果。
请注意,在这个程序中,我们假设了两个矩阵的大小分别为 3x2 和 2x3。如果要处理不同大小的矩阵,需要修改程序中的行和列数定义,并相应地修改循环中的索引。
请你用rust编写一个程序,计算两个矩阵的乘积/
当然可以!下面是一个用 Rust 编写的程序,用于计算两个矩阵的乘积:
```rust
fn matrix_multiplication(matrix1: &[Vec<i32>], matrix2: &[Vec<i32>]) -> Vec<Vec<i32>> {
let rows1 = matrix1.len();
let cols1 = matrix1[0].len();
let cols2 = matrix2[0].len();
let mut result = vec![vec![0; cols2]; rows1];
for i in 0..rows1 {
for j in 0..cols2 {
for k in 0..cols1 {
result[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
result
}
fn main() {
let matrix1 = vec![
vec![1, 2, 3],
vec![4, 5, 6],
];
let matrix2 = vec![
vec![7, 8],
vec![9, 10],
vec![11, 12],
];
let multiplication_result = matrix_multiplication(&matrix1, &matrix2);
for row in multiplication_result {
println!("{:?}", row);
}
}
```
这个程序定义了一个 `matrix_multiplication` 函数,接受两个二维矩阵作为参数,并返回它们的乘积矩阵。在 `main` 函数中,我们定义了两个矩阵 `matrix1` 和 `matrix2`,然后调用 `matrix_multiplication` 函数来计算它们的乘积,并打印结果。
请注意,这个程序假设输入的矩阵维度是合法的,即第一个矩阵的列数等于第二个矩阵的行数。如果输入的矩阵维度不符合要求,程序可能会出错。为了简化代码,这里省略了对输入维度的检查。
希望这个程序对你有所帮助!如果你有任何其他问题,请随时提问。