首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >两个特征::VectorXd的有效(非标准)连接

两个特征::VectorXd的有效(非标准)连接
EN

Stack Overflow用户
提问于 2017-10-30 11:12:44
回答 1查看 107关注 0票数 0

我有两个特征:VectorXd对象,A和B,具有相同的维数n。

我想创建一个新的向量C,以便:

  • 如果Bi是NaN,则Ci = Ai
  • 否则: Ci = Bi

由于应用程序对延迟敏感,我想避免复制A和B。

现在,我使用的是一个简单的for-循环,但是我想知道如何用一种智能(呃)的方式来实现这一点。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-30 11:49:43

尝试使用select

代码语言:javascript
复制
C = (B.array() == B.array()).select(B, A);

否则,B==B将在非NaN和false的值中为真。对于真值,选择返回第一个矩阵,对于false返回第二个。

正如注意到的below by chtz,一种更紧凑的编写方法是:

代码语言:javascript
复制
C = B.array().isNaN().select(A, B);

就性能而言,这不是矢量化的(至少上次我检查过),但没有引入AB的副本。这可能与您编写的内容相同(据我所知,没有看到代码)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47013849

复制
相关文章

相似问题

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