两个矩阵的乘法

C++C++Beginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

介绍

在本实验中,我们将学习如何在 C++ 编程语言中计算两个矩阵(二维数组)的乘积。我们将将其分解为简单的步骤,以便即使是初学者也能轻松跟上。

包含必要的头文件

我们将在 ~/project 目录下使用以下命令创建一个名为 main.cpp 的新文件:

touch ~/project/main.cpp

在第一步中,我们需要包含必要的头文件。

#include <iostream>

我们将使用 iostream 文件来接收输入并显示输出。

定义 main() 函数

在第二步中,我们将声明主函数。

int main() {

定义变量

在第三步中,我们需要声明变量来存储输入矩阵和乘法结果。

int row1, col1, row2, col2, i, j, k;
int m1[10][10], m2[10][10], pro[10][10];

这里,row1col1 分别表示第一个矩阵的行数和列数,row2col2 分别表示第二个矩阵的行数和列数。m1m2pro 变量分别表示两个输入矩阵和乘积矩阵。

获取用户输入

在第四步中,我们将从用户那里获取矩阵数据。

std::cout << "\nEnter the number of Rows and Columns of first matrix : ";
std::cin >> row1 >> col1;

std::cout << "\nEnter the number of Rows and Columns of second matrix : ";
std::cin >> row2 >> col2;

// input of first matrix
std::cout << "\nEnter the " << row1 * col1 << " elements of first matrix : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cin >> m1[i][j];
    }
}

// input of second matrix
std::cout << "\nEnter the " << row2 * col2 << " elements of second matrix : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cin >> m2[i][j];
    }
}

在这里,我们从用户那里获取两个矩阵的行数和列数,然后获取矩阵的每个元素的值。

矩阵乘法

在第五步中,我们将对矩阵进行乘法运算。

if (col1 == row2) {
    for (i = 0; i < row1; i++) {
        for (j = 0; j < col2; j++) {
            pro[i][j] = 0;
            for (k = 0; k < col1; k++)
                pro[i][j] = pro[i][j] + (m1[i][k] * m2[k][j]);
        }
    }
}

在这里,我们首先检查矩阵是否满足乘法条件。如果满足,我们将按照介绍中的方法进行乘法运算。

显示矩阵

在第六步中,我们将显示矩阵。

std::cout << "\nThe first matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col1; j++) {
        std::cout << m1[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe second matrix is : \n";
for (i = 0; i < row2; i++) {
    for (j = 0; j < col2; j++) {
        std::cout << m2[i][j] << "  ";
    }
    std::cout << std::endl;
}

std::cout << "\nThe Product matrix is : \n";
for (i = 0; i < row1; i++) {
    for (j = 0; j < col2; j++) {
        std ::cout << pro[i][j] << "  ";
    }
    std::cout << std::endl;
}

我们首先显示两个矩阵,然后显示结果矩阵。

编译并运行代码

要编译代码,请打开终端并导航到保存代码文件的目录。然后,运行以下命令来编译代码:

g++ main.cpp -o main

代码成功编译后,运行以下命令来执行程序:

./main

总结

恭喜!你已经学会了如何在 C++ 编程语言中计算两个矩阵的乘积。我们学习了如何检查矩阵是否满足乘法条件、如何进行矩阵乘法以及如何显示输入矩阵和结果矩阵。我们还在 Linux 环境中测试了代码,并学习了如何编译和运行代码。