在DolphinDB database中怎么用动态表达式来计算多个向量

发布于 2022-09-12 02:21:04 字数 438 浏览 21 评论 0

我需要用动态表达式来计算多个向量,n个向量之间的计算关系不确定,用表达式代替,可以下面这样吗?

def calculateExpress( formula,  dataVector)
{
   f=dataVector
   result=parseExpr(formula).eval()
   return result 
}

dataVector=
[
 [1,2],
 [2,3],
 [4,5],
 [6,7]
]
formula="f[0]+f[1]+f[2]+f[3]"
calculateExpress(formula,dataVector)

但运行时报错:
Function definition [f] is not copyable and can't serve as an operand in numeric calculation.
请问有什么办法吗?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光沙漏 2022-09-19 02:21:04

parseExpr之后的表达式,一般都使用在sql语句中,变量就是表。这个问题可以参考元编程教程第2.4节例子,1个向量对应表的1个列,传入一个表和一个表达式,动态生成一个sql语句执行,代码如下:

def calculateExpress( formula,  t){
    return sql(sqlColAlias(parseExpr(formula), "value"), t).eval().value
}

t=table(1 2 as f0, 2 3 as f1, 4 5 as f2, 6 7 as f3)

formula="f0+f1+f2+f3"
calculateExpress(formula,t)
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文