【问题标题】:Eigen Library assigning Matrix's elements?特征库分配矩阵的元素?
【发布时间】:2014-05-24 05:44:44
【问题描述】:

我在 Eigen 库 here 中遇到了以下矩阵分配问题

Matrix3f m;
m << 1, 2, 3,
     4, 5, 6,
     7, 8, 9;

作为无聊的替代方式(m(0,0) = 1; ...等)。我的问题是使用第一种方法我应该注意什么?因为我知道任何简化都是有代价的。

【问题讨论】:

    标签: c++ matrix variable-assignment eigen


    【解决方案1】:

    在第一种情况下,m(0,0)=1 调用 operator(Index, Index)operator=(const Scalar&amp; s),这可能非常快。而m &lt;&lt; 1,2, ... 调用重载的operator&lt;&lt; 和重载的逗号链operator,(const Scalar&amp; s),请参见此处的代码:http://eigen.tuxfamily.org/dox/CommaInitializer_8h_source.html

    我猜第二次初始化会慢一些,但除非你手动初始化巨大的矩阵,否则应该不会有什么不同。无论如何,你不能使用逗号初始化循环初始化,所以逗号形式只用于小矩阵(你可以真正手动编写元素)。

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多