matrix vector multiplication c++
时间: 2023-10-24 19:07:37 浏览: 59
在 C++ 中,可以使用 std::vector 或者数组来表示矩阵和向量,然后通过循环计算实现矩阵向量乘法。以下是一个示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<int>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
vector<int> vec = {1, 2, 3};
vector<int> result(matrix.size(), 0);
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < vec.size(); j++) {
result[i] += matrix[i][j] * vec[j];
}
}
for (int i = 0; i < result.size(); i++) {
cout << result[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:
```
14 32 50
```
相关问题
c++ matrix vector multiplication
C++中的矩阵向量乘法可以使用STL中的vector和array来实现。具体来说,我们可以使用vector<vector<double>>来表示矩阵,使用vector<double>来表示向量。然后,我们可以使用for循环来计算矩阵向量乘积。以下是一个简单的示例代码:
```c++
#include <iostream>
#include <vector>
using namespace std;
int main() {
vector<vector<double>> matrix = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}};
vector<double> vector = {1, 2, 3};
vector<double> result(3);
for (int i = 0; i < matrix.size(); i++) {
for (int j = 0; j < vector.size(); j++) {
result[i] += matrix[i][j] * vector[j]; }
}
for (int i = 0; i < result.size(); i++) {
cout << result[i] << " ";
}
return 0;
}
```
这个程序将输出结果为:14 32 50。
矩阵运算代码c++
以下是 C++ 中实现矩阵运算的基本代码:
```
#include <iostream>
#include <vector>
using namespace std;
// 定义矩阵数据类型
typedef vector<vector<double>> Matrix;
// 矩阵加法
Matrix matrixAddition(Matrix A, Matrix B) {
int m = A.size(), n = A[0].size();
Matrix C(m, vector<double>(n));
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
C[i][j] = A[i][j] + B[i][j];
}
}
return C;
}
// 矩阵乘法
Matrix matrixMultiplication(Matrix A, Matrix B) {
int m = A.size(), n = A[0].size(), l = B[0].size();
Matrix C(m, vector<double>(l));
for (int i = 0; i < m; i++) {
for (int j = 0; j < l; j++) {
for (int k = 0; k < n; k++) {
C[i][j] += A[i][k] * B[k][j];
}
}
}
return C;
}
int main() {
// 定义两个矩阵
Matrix A = {{1, 2}, {3, 4}};
Matrix B = {{5, 6}, {7, 8}};
// 矩阵加法
Matrix C = matrixAddition(A, B);
cout << "Matrix addition result:" << endl;
for (auto row : C) {
for (auto elem : row) {
cout << elem << " ";
}
cout << endl;
}
// 矩阵乘法
Matrix D = matrixMultiplication(A, B);
cout << "Matrix multiplication result:" << endl;
for (auto row : D) {
for (auto elem : row) {
cout << elem << " ";
}
cout << endl;
}
return 0;
}
```
以上代码实现了矩阵加法和矩阵乘法操作,并在主函数中进行了示例操作。可以根据自己的需求进行修改和扩展。