可以得到特征的类型::MatrixBase<T> &
Possible to get type of Eigen::MatrixBase<T> &
font =宋体;数据,有没有办法得到如果它是一个浮点或双矩阵?我需要创建一个与MatrixBase相同大小和类型的新复杂矩阵。
如果它是MatrixXf那么我需要创建MatrixXcf,如果MatrixXd我需要MatrixXcD。
template <typename A>
int dowork(const Eigen::MatrixBase<A>& data)
这很简单,只需使用A::RealScalar类型定义来构建您的复杂类型:
template <typename A>
int dowork(const Eigen::MatrixBase<A>& data) {
typedef Matrix<std::complex<typename A::RealScalar, Dynamic, Dynamic> MatCplx;
...
我不是100%确定我理解被问到的问题,但我认为你要求在满足某些条件后分配相同时间类型的另一个矩阵?您是否希望这个新矩阵不允许与类型不匹配的数据类型?
如果没有,因为你使用的是模板类,你有很大的自由,可以只使用一般的模板数据类型。为了便于使用,还可以考虑使用矢量格式表示矩阵。甚至可能是像这样的稀疏格式
// Local variables used.
int a = 0;
int b = 0;
int endN, endM;
// Iterates through matrix checking when last matrix value is reached for end point.
while (endN != sizeN && endM != sizeM) {
if (a == sizeN) {
b++;
a = 0;
endM = b;
} else {
if (Matrix[a][b] != 0) {
// Stores non-zero matrix values in queue SpareseFormat.
SparseFormat.push(a);
SparseFormat.push(b);
SparseFormat.push(Matrix[a][b]);
}
endN = a;
a++;
}
}
如果我完全没有理解你的问题,我很抱歉。P相关文章:
- EASTL矢量<向量<int>>连续的
- 如何从 Eigen::MatrixBase <Derived>获取存储选项
- C - 创建矢量&lt; vector&lt; double&gt;&gt;矩阵具有分配而不是inizializ
- C++/Eigen:获取为 MatrixBase 编写的模板的矩阵参数类型
- C 字符串比较“祝您好运”&gt;“再见”
- 为什么将此对向量&lt; map&lt; int,int&gt;&gt;中的地图进行更新.失败
- C :对矢量进行排序&lt; struct&gt;(结构有2个整数)基于结构的整数之一
- C 操作员&gt;&gt;与突变器过载
- 明确的专业化“ CheckIntmap&lt;&gt;”实例化
- 是否需要使用 - &gt;运算符在C 中调用成员函数时
- 什么是模板&lt;&gt;inline bla bla
- 编辑C Qlist&lt; object*&gt; gt;QML代码和一些QML警告中的模型
- eigen :: llt&lt;eigen :: matrixxd&gt;具有不完整的类型
- 错误,包括&lt; ctype&gt;在原子上使用C 11
- 错误c++visual studio c2227左侧'->;Init';必须指向类/结构/联合/泛型类型
- std::vector<;uint8_t>;当C++11/14启用时,手动复制而不是调用memcpy
- ``这个''不能用this-&gt;指针变量
- 如何加入向量&lt; int&gt;到C 中的单个INT
- 是std :: set&lt; std :: future&gt;不可能存在
- 使用shared_ptr<字符串>转换为一个无序集合<字符串>