21xrx.com
2025-06-17 19:32:59 Tuesday
文章检索 我的文章 写文章
C++实现矩阵乘法
2023-07-11 17:46:06 深夜i     129     0
C++ 实现 矩阵乘法

矩阵乘法是线性代数中非常基础的运算,也是计算机图形学和机器学习等领域中常见的运算。C++是一门高效的编程语言,其支持面向对象的编程思想,非常适合用来实现矩阵乘法。

实现矩阵乘法的关键在于能够正确地处理矩阵的行列,以及正确地进行矩阵元素的乘积累加。下面是一个简单的示例代码:

#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> matrix_multiply(vector<vector<int>>& a, vector<vector<int>>& b) {
  int m = a.size();
  int n = b[0].size();
  vector<vector<int>> c(m, vector<int>(n, 0));
  for (int i = 0; i < m; i++) {
    for (int j = 0; j < n; j++) {
      for (int k = 0; k < b.size(); k++) {
        c[i][j] += a[i][k] * b[k][j];
      }
    }
  }
  return c;
}
int main() {
  vector<vector<int>> a { 2, 5};
  vector<vector<int>> b {7, 10, 12};
  vector<vector<int>> c = matrix_multiply(a, b);
  for (auto row : c) {
    for (auto elem : row)
      cout << elem << " ";
    
    cout << endl;
  }
  return 0;
}

在这个示例代码中,我们定义了一个 `matrix_multiply` 函数,该函数接受两个矩阵,返回它们的乘积。在函数中,我们首先获取矩阵的行列信息,然后创建一个新的矩阵来存储结果。接着,我们使用三重循环来计算矩阵乘积,其中第一重循环遍历第一个矩阵的行,第二重循环遍历第二个矩阵的列,第三重循环遍历第二个矩阵的行,用来计算每个元素的乘积累加。最后,我们返回计算结果。

在示例代码的 `main` 函数中,我们定义了两个矩阵,并调用 `matrix_multiply` 函数来计算它们的乘积,然后输出结果。

总的来说,C++实现矩阵乘法是非常简单的,只需要遵循基本的线性代数规则和正确地处理矩阵的行列,就能够正确地计算出矩阵乘积。

  
  

评论区