[英]How do I fill matrices created in c++ using boost uBLAS?
總的來說,我是 C++ 的新手。 我有一個任務,我需要使用 boost uBLAS 庫創建一個具有設置常量值的 5x5 矩陣。 然后我必須使用 boost uBLAS 將這些矩陣相乘。
到目前為止我有:
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/vector.hpp>
#include <boost/numeric/ublas/io.hpp>
using namespace boost::numeric::ublas;
int main()
{
matrix<double> m1 (5, 5);
vector<double> v1 (5);
std::cout << m1;
std::cout << v1;
}
所以基本上我創建了 5x5 矩陣和一個向量,它們都用零填充。 我如何用我想要的數字填充矩陣和向量,以便(例如):
m1 = [2,1,4,6,3;
8,2,0,1,4;
7,3,2,4,7;
1,2,0,9,3;
2,6,4,3,1]
和
v1 = [2;
3;
1;
7;
6]
您可以使用 uBlas 賦值運算符 <<=:
#include <boost/numeric/ublas/assignment.hpp>
然后例如
m1 <<= 2,1,4,6,3,
8,2,0,1,4,
7,3,2,4,7,
1,2,0,9,3,
2,6,4,3,1;
v1 <<= 2,
3,
1,
7,
6;
std::cout << "m1: " << m1 << "\n";
std::cout << "v1: " << v1 << "\n";
#include <boost/numeric/ublas/assignment.hpp>
#include <boost/numeric/ublas/io.hpp>
#include <boost/numeric/ublas/matrix.hpp>
#include <boost/numeric/ublas/vector.hpp>
using namespace boost::numeric::ublas;
int main() {
matrix<double> m1(5, 5);
vector<double> v1(5);
std::cout << "m1: " << m1 << "\n";
std::cout << "v1: " << v1 << "\n";
m1 <<= 2,1,4,6,3,
8,2,0,1,4,
7,3,2,4,7,
1,2,0,9,3,
2,6,4,3,1;
v1 <<= 2,
3,
1,
7,
6;
std::cout << "m1: " << m1 << "\n";
std::cout << "v1: " << v1 << "\n";
}
印刷
m1: [5,5]((0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0),(0,0,0,0,0))
v1: [5](0,0,0,0,0)
m1: [5,5]((2,1,4,6,3),(8,2,0,1,4),(7,3,2,4,7),(1,2,0,9,3),(2,6,4,3,1))
v1: [5](2,3,1,7,6)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.