如何用C++编程实现两个矩阵的乘法运算?
时间: 2024-10-21 08:12:25 浏览: 26
在C++中,矩阵乘法通常涉及到线性代数中的“按列优先”的规则,即第一个矩阵的每一行都要与第二个矩阵的所有列相乘然后求和得到结果矩阵的对应元素。这里是一个简单的示例,假设我们有两个整型矩阵A和B:
```cpp
#include <iostream>
using namespace std;
const int ROW_A = 3; // A矩阵的行数
const int COL_B = 3; // B矩阵的列数 (等于A的列数)
const int ROW_B = 4; // B矩阵的行数 (等于结果矩阵的行数)
// 矩阵结构体
struct Matrix {
int data[ROW_A][COL_B];
};
// 矩阵乘法函数
Matrix multiply(Matrix& A, Matrix& B) {
Matrix result(ROW_A, ROW_B);
for(int i = 0; i < ROW_A; ++i) {
for(int j = 0; j < ROW_B; ++j) {
for(int k = 0; k < COL_B; ++k) {
result.data[i][j] += A.data[i][k] * B.data[k][j]; // 按照矩阵乘法规则计算
}
}
}
return result;
}
int main() {
Matrix A = {{1, 2, 3},
{4, 5, 6},
{7, 8, 9}};
Matrix B = {{10, 11, 12, 13},
{14, 15, 16, 17},
{18, 19, 20, 21},
{22, 23, 24, 25}};
Matrix C = multiply(A, B); // 实际操作
// 输出结果矩阵C
for(int i = 0; i < ROW_A; ++i) {
for(int j = 0; j < ROW_B; ++j) {
cout << C.data[i][j] << " ";
}
cout << endl;
}
return 0;
}
```
阅读全文