gpt4 book ai didi

c++ - C++中的特征库是否有动态 vector 或矩阵

转载 作者:行者123 更新时间:2023-11-28 05:18:54 25 4
gpt4 key购买 nike

有没有办法在 Eigen 库中设置动态 vector 或矩阵?如果没有,有没有办法仍然将 Eigen 库与另一个类结合使用,例如 vector

例如,假设我有 n*1矩阵称为 MatrixXd S(n,1);现在为简单起见让 n=3S = 4 2 6 .假设 S 中的元素是 future 的股票价格,让K = 2这将是行使价。别担心,您不需要了解期权的术语。现在说我想知道 S 在什么位置我们会有S - K > 0吗并说我想将这些位置存储在 vector 调用中 b .

很明显,取决于S的元素 vector b将具有不同的大小。因此,我需要 b属于动态变量。我熟悉的唯一允许这样做的类是 vector 类,即 #include <vector> .

我的问题如下:可以使用Eigen库和#include <vector>吗?一起上课?请注意,我将执行 b 的操作使用我创建的 Eigen 库 vector 和矩阵。

如果我说的不对,或者我的问题不清楚,请告诉我,我会尽可能地澄清。

最佳答案

是的,确实如此。它出现在 Getting started 的“一个简单的第一个程序”中:

#include <iostream>
#include <Eigen/Dense>
using Eigen::MatrixXd;
int main()
{
MatrixXd m(2,2);
m(0,0) = 3;
m(1,0) = 2.5;
m(0,1) = -1;
m(1,1) = m(1,0) + m(0,1);
std::cout << m << std::endl;
}

您确实需要将大小传递给构造函数,但它的工作方式类似于 vector .你可以 resize 稍后也是。

MatrixXd Matrix 的一个方便的 typedef使用 Dynamic 的模板作为 Rows 的模板值, 和 Cols .基本上是Matrix<double, Dynamic, Dynamic> .

因此,您不仅可以拥有动态大小的 vector 和矩阵,还可以拥有任意大的固定大小的 vector 和矩阵。 Eigen 对小矩阵进行了非常巧妙的优化,因此使用固定大小可能会有好处。

关于c++ - C++中的特征库是否有动态 vector 或矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41949129/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com