[英]Can i declare an Eigen matrix of unknown type, or at least declare a generic matrix and instantiate later?
我正在尝试编写一个将二进制文件中的数据读入本征矩阵的函数。 在编译时无法知道要读取的数据类型。 因此,我需要一种在编译时更改本征矩阵的数据类型的方法。 据我所知,没有办法将现有的本征矩阵转换为其他类型。
我怎样才能做到这一点?
我可以为函数提供什么,以便在返回时,将有二进制数据的本征矩阵?
是否可以声明一个通用矩阵,例如Eigen::PlainObjectBase Data;
那将保持不实例化并在函数内部实例化?
我怎样才能做到这一点?
如果可能,请记录对象的数据类型。 也许矫kill过正,但是请看一下SQLite并尝试将数据存储为类型的TEXT
条目和二进制数据的BLOB
。 这将使您可以通过简单地查询数据库来确定类型。
我以前没有使用过Eigen,但是如果您别无选择(也许您有很多现有的二进制数据),请尝试创建几种不同类型的矩阵,然后尝试将数据拟合到它们中。 如果可行,则可以创建一个对象,将指向这些数据类型的指针作为成员,作为矩阵类型的成员,然后仅在需要时向对象提供引用。
我可以给函数提供什么,以便在返回时,将有二进制数据的本征矩阵?
你至少应该给这个功能
是否可以声明一个通用矩阵,例如Eigen :: PlainObjectBase Data; 那将保持不实例化并在函数内部实例化?
是的,理想情况下,您将能够创建一个指针并仅在其他地方引用它。
您可以使用一个类来包含您的矩阵,而只需在别处引用您的类即可。 如果没有令人讨厌的hacks,您将无法在运行时使用诸如Eigen::PlainObjectBase
模板。 如果您是受虐狂,甚至可以预先分配“足够的空间”,然后确定您要填充的空间。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.