c++如何计算矩阵乘法
时间: 2024-10-16 14:03:39 浏览: 19
在C++中,计算矩阵乘法涉及到两个矩阵的元素逐行、逐列相乘并求和。下面是一个简单的二维数组(矩阵)实现的矩阵乘法的例子,假设我们有两个整数矩阵A和B,我们可以创建一个新的矩阵C来存储结果:
```cpp
#include <iostream>
using namespace std;
// 矩阵乘法函数
void matrixMultiplication(int A[][3], int B[][3], int C[][3], int rowsA, int colsA, int rowsB) {
// 检查能否相乘,矩阵B的第一维(列数)必须等于矩阵A的第二维(行数)
if (colsA != rowsB) {
cout << "无法相乘,矩阵维度不匹配。\n";
return;
}
for (int i = 0; i < rowsA; ++i) {
for (int j = 0; j < rowsB; ++j) {
C[i][j] = 0; // 初始化结果矩阵元素
for (int k = 0; k < colsA; ++k) {
// 根据矩阵乘法规则,A[i][k]*B[k][j]
C[i][j] += A[i][k] * B[k][j];
}
}
}
}
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]; // 结果矩阵
int rowsA = 3, colsA = 3, rowsB = 3; // 矩阵A和B的维度
matrixMultiplication(A, B, C, rowsA, colsA, rowsB);
// 打印结果矩阵C
for (int i = 0; i < rowsA; ++i) {
for (int j = 0; j < rowsB; ++j) {
cout << C[i][j] << " ";
}
cout << "\n";
}
return 0;
}
```
阅读全文