gpt4 book ai didi

wolfram-mathematica - 数学 : set default value for argument to nonconstant?

转载 作者:行者123 更新时间:2023-12-04 22:51:26 25 4
gpt4 key购买 nike

我可以将函数参数的默认值设置为某个值吗
这不是恒定的?例子:

tod := Mod[AbsoluteTime[], 86400] 
f[x_:tod] := x

在上面,'tod' 每次我评估它都会改变,但是 "f[]"会
不是。 “?f”产生:
f[x_:42054.435657`11.376386798562935] := x 

当我创建函数时,显示默认值是硬编码的。

这里有解决方法吗?

最佳答案

如果函数保持其参数,它似乎有效:

tod := Mod[AbsoluteTime[], 86400]
SetAttributes[f, HoldAll];
f[x_: tod] := x

在[23]:= f[]

出[23]= 47628.994048

在[24]:= f[]

出[24]= 47629.048193

或者,您可以使用如下所示的结构代替默认值:
g[] := g[Mod[AbsoluteTime[], 86400]]
g[x_] := x

在[27]:= g[]

出[27]= 47706.496195

在[28]:= g[]

出[28]= 47707.842012

关于wolfram-mathematica - 数学 : set default value for argument to nonconstant?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4661583/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com