首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >特征库:实时处理

特征库:实时处理
EN

Stack Overflow用户
提问于 2014-06-23 10:16:48
回答 2查看 489关注 0票数 0

我试图使用没有堆分配的Eigen来进行实时处理。

据我所知:

代码语言:javascript
复制
Matrix<double, Dynamic, Dynamic> allocates on the stack
Matrix<double, Dynamic, Dynamic, AutoAlign, 1, 1> allocates on the heap
and Matrix<double, 1, 1> allocates on the stack;

实时使用Eigen的一种方法是在启动时调整矩阵的大小,使其具有较大的大小,然后只使用此大小的一小部分。

我的问题是:对于像:Rm.colPivHouseholderQr().solve(Rhs)这样的函数,我如何使用动态矩阵来执行这样的计算?

函数将接受整个矩阵的大小来进行操作,这是不好的,因为我们只希望处理这个大小的一部分。

而且我们显然不能use .resize()

那么如何使用实时处理来执行操作呢?

EN

回答 2

Stack Overflow用户

发布于 2014-06-23 17:40:44

实时处理通常涉及相同的工作重复进行,在一个固定的时间表.因此,动态内存分配的一种方法是有一个连续的内存块(一个池),您可以从其中线性地分配内存。然后,在处理结束时将所有这些内存标记为空闲。分配成本是O(1),去分配成本是O(1),对于给定的工作量,您可以很容易地保证所有内存分配都将得到满足。因此,一种解决方案是使用自定义分配器。

票数 0
EN

Stack Overflow用户

发布于 2014-06-30 14:44:54

使用块()方法

代码语言:javascript
复制
Rm.block<3, 3>(0,0).colPivHouseholderQr().solve(Rhs)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24363459

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档