专有与 QGenericMatrix
Eigen vs QGenericMatrix
我正在开发 Qt C++ 应用程序,我需要进行一些线性代数运算 并存储2D 和3D 矩阵数据。也许 N 维 案例也是必要的。
我看到 Qt 有 QGenericMatrix
class (link).
那么,在我的项目中包含 Eigen
(link) 并使用它而不是使用 QGenericMatrix
是否有任何优势?
嗯,打个比方,你是在拿一个功能强大的多功能工具箱(Eigen)和一把简单的螺丝刀(Qt的class)进行比较。我怀疑任何人都能够根据您提供的信息告诉您应该做什么。对于您的项目来说,一把简单的螺丝刀可能就足够了。
并且不清楚您所说的 3D 矩阵是什么意思。你的意思是高维张量?据我所知,这两个选项都不能解决这些问题。
没有更多信息,很难准确回答您的问题。如果我是你,我会根据项目的要求来决定。
Just apply the KISS rule i.e., Keep it simple stupid.
如果你的项目需要做复杂的数值方法和线性代数,Eigen会是更好的选择。否则你可以只使用 QGenericMatrix
或者根据你的需要子类化它。
可能需要注意的是,Eigen 除了 C++ 标准库之外没有任何依赖项,而且它是跨平台的。因此,如果您针对多个平台,使用它可能不会造成任何问题。
我正在开发 Qt C++ 应用程序,我需要进行一些线性代数运算 并存储2D 和3D 矩阵数据。也许 N 维 案例也是必要的。
我看到 Qt 有 QGenericMatrix
class (link).
那么,在我的项目中包含 Eigen
(link) 并使用它而不是使用 QGenericMatrix
是否有任何优势?
嗯,打个比方,你是在拿一个功能强大的多功能工具箱(Eigen)和一把简单的螺丝刀(Qt的class)进行比较。我怀疑任何人都能够根据您提供的信息告诉您应该做什么。对于您的项目来说,一把简单的螺丝刀可能就足够了。
并且不清楚您所说的 3D 矩阵是什么意思。你的意思是高维张量?据我所知,这两个选项都不能解决这些问题。
没有更多信息,很难准确回答您的问题。如果我是你,我会根据项目的要求来决定。
Just apply the KISS rule i.e., Keep it simple stupid.
如果你的项目需要做复杂的数值方法和线性代数,Eigen会是更好的选择。否则你可以只使用 QGenericMatrix
或者根据你的需要子类化它。
可能需要注意的是,Eigen 除了 C++ 标准库之外没有任何依赖项,而且它是跨平台的。因此,如果您针对多个平台,使用它可能不会造成任何问题。