21xrx.com
2025-06-04 08:39:57 Wednesday
文章检索 我的文章 写文章
C++实现矩阵相乘:A×B=C
2023-07-05 19:48:27 深夜i     20     0
C++ 矩阵 相乘 A*B=C 实现

矩阵相乘是线性代数中的重要运算,其应用广泛,例如计算机图形学、数据处理和机器学习等领域。C++作为一种常用的编程语言,可以非常方便地实现矩阵相乘并进行相关操作。

在矩阵相乘中,我们要求两个矩阵A和B的乘积,结果为一个新的矩阵C。这里要求矩阵A的列数等于矩阵B的行数。

具体实现过程中,我们可以使用二维数组来存储矩阵,然后按照矩阵乘法的定义进行计算。具体来说,计算C矩阵的第i行第j列的元素时,我们需要求出A矩阵的第i行与B矩阵的第j列的乘积,然后将每个元素相加得到C矩阵的对应元素。

以下是C++中实现矩阵相乘的代码示例:

#include <iostream>
#include <vector>
using namespace std;
int main()
{
  // 定义矩阵A、B和C
  vector<vector<int>> A = {1, 5};
  vector<vector<int>> B = {7, 9, 12};
  vector<vector<int>> C(2, vector<int>(2, 0));
  // 计算矩阵C
  for (int i = 0; i < 2; i++)
  {
    for (int j = 0; j < 2; j++)
    {
      for (int k = 0; k < 3; k++)
      {
        C[i][j] += A[i][k] * B[k][j];
      }
    }
  }
  // 输出结果
  cout << "矩阵A:\n";
  for (auto& row : A)
  {
    for (auto& element : row)
    
      cout << element << " ";
    
    cout << endl;
  }
  cout << "矩阵B:\n";
  for (auto& row : B)
  {
    for (auto& element : row)
    
      cout << element << " ";
    
    cout << endl;
  }
  cout << "矩阵C:\n";
  for (auto& row : C)
  {
    for (auto& element : row)
    
      cout << element << " ";
    
    cout << endl;
  }
  return 0;
}

上述代码中,我们使用了vector >来表示二维矩阵,并使用三个循环(i、j和k)来计算矩阵C。在输出结果时,我们也使用了循环来依次打印每个元素。

总之,C++中实现矩阵相乘非常简单,只需要按照矩阵乘法的定义进行计算即可。在实际应用中,我们可以根据需求修改代码中的变量和矩阵的大小来完成更加复杂的矩阵运算。

  
  
下一篇: 函数用法详解

评论区