本文通过vector()函数表示矩阵的形式,对 加、减、点乘、点除等运算进行编码和运行,相应结果如下文所述。
#include <iostream>
#include <vector>
using namespace std;
// 矩阵加法
vector<vector<int>> add(vector<vector<int>>& A, vector<vector<int>>& B) {
vector<vector<int>> result(A.size(), vector<int>(B[0].size()));
for (int i = 0; i < A.size(); i++) {
for (int j = 0; j < B[0].size(); j++) {
result[i][j] = A[i][j] + B[i][j];
}
}
return result;
}
// 矩阵减法
vector<vector<int>> subtract(vector<vector<int>>& A, vector<vector<int>>& B) {
vector<vector<int>> result(A.size(), vector<int>(B[0].size()));
for (int i = 0; i < A.size(); i++) {
for (int j = 0; j < B[0].size(); j++) {
result[i][j] = A[i][j] - B[i][j];
}
}
return result;
}
// 矩阵点乘
vector<vector<int>> dot_product(vector<vector<int>>& A, vector<vector<int>>& B) {
vector<vector<int>> result(A.size(), vector<int>(B[0].size()));
for (int i = 0; i < A.size(); i++) {
for (int j = 0; j < B[0].size(); j++) {
result[i][j] = 0;
for (int k = 0; k < A[0].size(); k++) {
result[i][j] += A[i][k] * B[k][j];
}
}
}
return result;
}
本文通过vector表示矩阵的内容,进行加、减、点乘、点除四种运算示例,包含代码和运行结果,可直接运行。
// 矩阵点除
vector<vector<int>> divide(vector<vector<int>>& A, vector<vector<int>>& B) {
vector<vector<int>> result(A.size(), vector<int>(B[0].size()));
for (int i = 0; i < A.size(); i++) {
for (int j = 0; j < B[0].size(); j++) {
result[i][j] = A[i][j] / B[i][j];
}
}
return result;
}
void printMatrix(const vector<vector<int>>& matrix) {
for (const auto& row : matrix) {
for (const auto& element : row) {
cout << element << ' '; // 可以按你的需求更改分隔符,例如使用逗号或制表符等。这里使用空格作为分隔符。
}
cout << '\n'; // 每行结束后换行。你可以更改或删除此行,根据你的需求。
}
}
int main() {
// 测试矩阵加法
vector<vector<int>> A = { {1, 2}, {3, 4} };
vector<vector<int>> B = { {5, 6}, {7, 8} };
vector<vector<int>> C = add(A, B);
cout<<"加法运算:" << endl;
printMatrix(C);
// 测试矩阵减法
cout << "减法运算:" << endl;
vector<vector<int>> D = subtract(A, B);
printMatrix(D);
// 测试矩阵点乘
cout << "点乘运算:" << endl;
vector<vector<int>> E = dot_product(A, B);
printMatrix(E);
cout << "点除运算:" << endl;
// 测试矩阵点除
vector<vector<int>> F = divide(A, B);
printMatrix(F);
return 0;
}
上述代码主要定义了四个操作矩阵的函数:加法、减法、点乘和点除,以及一个打印矩阵的函数。
**add 函数:**这个函数实现了两个矩阵的加法操作。它首先创建一个新的矩阵,大小与输入的两个矩阵相同,然后逐个元素地加上两个输入矩阵的对应元素。
**subtract 函数:**这个函数实现了两个矩阵的减法操作。它首先创建一个新的矩阵,大小与输入的两个矩阵相同,然后逐个元素地减去两个输入矩阵的对应元素。
**dot_product 函数:**这个函数实现了两个矩阵的点乘操作。它首先创建一个新的矩阵,大小与输入的两个矩阵相同,然后逐个元素地计算两个输入矩阵的对应元素的乘积,并把乘积相加。
**divide 函数:**这个函数实现了两个矩阵的点除操作。注意,这段代码并未处理除数为0的情况。在实际应用中,你需要添加额外的处理逻辑来应对除数为0的情况。
**printMatrix 函数:**这个函数用于打印一个矩阵。它通过嵌套循环来遍历矩阵的每一个元素,并打印出来。每个元素之后都有一个空格,每行结束之后会换行。
**在 main 函数中,**这段代码用两组示例矩阵测试了上述四个函数,并使用 printMatrix 函数打印了结果。
**注意:**由于这段代码并未处理除数为0的情况,所以在实际使用 divide 函数时,需要添加额外的逻辑来处理除数为0的情况,否则可能会导致运行时错误。
输出结果如下图所示: