21xrx.com
2024-11-08 21:18:30 Friday
登录
文章检索 我的文章 写文章
C++实现矩阵乘法
2023-07-11 17:46:06 深夜i     --     --
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++实现矩阵乘法是非常简单的,只需要遵循基本的线性代数规则和正确地处理矩阵的行列,就能够正确地计算出矩阵乘积。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复