使用特征函数失败
Fail in working with a Eigen function
我的代码中提到的部分的目的是求解线性方程 Ax=b,将 "A" 作为方阵,将 "b" 作为具有相同大小的向量:
问题是,当我尝试在我的函数中使用特征函数时,我在编译中失败:
#include "Eigen/Dense"
using namespace Eigen;
void StreamTemperature::avgTemperature() {
TotalDist = pm->get_total_dist();
vector<vector<double>> A(TotalDist, std::vector<double>(TotalDist));
vector<double> b_copy;
VectorXd x_eigen; //Eigen format!
MatrixXd A_eigen(TotalDist, TotalDist);
VectorXd b_eigen(TotalDist);
for (int i = 0; i < (TotalDist - 1); i++) {
A[i + 1][i] = 1.0;
A[i][i] = 5.0;
A[i][i + 1] = -1.0;
}
A[TotalDist - 1][TotalDist - 1] = b[TotalDist - 1][j] + c[TotalDist - 1][j];
b_copy.resize(TotalDist);
for (int i = 0; i < TotalDist; i++) { b_copy[i] = 10.0; }
for (int i = 0; i < TotalDist; i++)
A_eigen.row(i) = Map<VectorXd>(A[i].data(), TotalTime);
for (int i = 0; i < TotalDist; i++)
b_eigen(i) = b_copy[i];
x_eigen = A_eigen.colPivHouseholderQr().solve(b_eigen);
for (int i = 0; i < TotalDist; i++) {
x[i] = x_eigen(i);
}
}
与本征相关的部分在 anohter 项目中运行良好,但我在这里有问题! 这是编译错误:
1>e:suny-filesspring2017summer2017runforsyracuseminitreecoolnewsweigensrc/Core/PlainObjectBase.h(659): error C2338: FLOATING_POINT_ARGUMENT_PASSED__INTEGER_WAS_EXPECTED
1>e:suny-filesspring2017summer2017runforsyracuseminitreecoolnewsweigensrc/Core/Matrix.h(250): note: see reference to function template instantiation 'void Eigen::PlainObjectBase<Eigen::Matrix<double,-1,-1,0,-1,-1>>::_init2<T0,T1>(int,int,double *)' being compiled
1> with
1> [
1> T0=double,
1> T1=double
1> ]
有什么想法吗?! :|
在声明 A_eigen 时,尝试显式地将 TotalDist 转换为 int。编译错误显示您正在将浮点数传递到预期 into 的位置。
还要检查 TotalDist 的值和 A_eigen 的维度。
相关文章:
- 特征::矩阵<双精度,1,3> 结构类型函数中的返回类型函数
- 为什么除非添加括号,否则构造函数上的模板替换会失败?
- 模板参数推导失败,函数参数/参数不匹配
- 特征:模板函数中矩阵的平面图
- 从类型std::函数传递变量失败,尽管调用方期望的类型完全相同
- 如果我重新定义 sqrt 函数,为什么使用 std::sqrt 失败?
- 特征模板化函数和维度
- C++ strcpy 函数在少数主要情况下失败
- 具有相同特征的两个对象是否只在内存中存储一次?无论定义它们的函数是什么,都是不同的
- 在构造函数中分配内存失败是如何冒泡的
- 无法调用成员函数,尝试正确执行此操作仍然失败
- 用于检测函数类型是否为否的特征
- 非静态成员失败的线程调用函数
- 根据类型特征更改函数定义?
- 使用特征函数失败
- 函数采用特征::张量 - 模板参数推导失败
- 编译来自学习现代 3D 图形编程的失败代码 函数___tmainCRTStartup中引用未解析的外部符号_main
- 可能失败的函数的接收参数和移动语义(强异常安全性)
- c++尝试失败构造函数
- 在可能失败的函数中重新获取对象引用的最佳方法