赞
踩
本文通过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的情况,否则可能会导致运行时错误。
输出结果如下图所示:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。