gpt4 book ai didi

wolfram-mathematica - 我如何获得相互依赖的选项?

转载 作者:行者123 更新时间:2023-12-02 06:54:45 25 4
gpt4 key购买 nike

我想做类似的事情

foo[OptionsPattern[]] := OptionValue[b]
Options[foo] = {a -> 0, b :> OptionValue[a]};
foo[a -> 1]

并让 Mathematica 给我 1 , 而不是 0 .有没有比这更好的方法来做到这一点
foo[OptionsPattern[]] := (
Options[foo] = {a -> 0, b :> OptionValue[a]};
OptionValue[b]
)
foo[a -> 1]

?

一方面,设置 foo的选项效率低下。每次通话,尤其是在 foo 时有很多选择。

最佳答案

这就是为什么我们有 Automatic .我会使用类似的东西:

Options[foo] = {a -> 0, b -> Automatic};

foo[OptionsPattern[]] :=
Block[{a, b},
{a, b} = OptionValue[{a, b}];
If[b === Automatic, a, b]
]

foo[]
(* --> 0 *)

foo[a -> 1]
(* --> 1 *)

foo[a -> 1, b -> 2]
(* --> 2 *)

此外,如果您需要,这允许对自动值进行更复杂的解释。

关于wolfram-mathematica - 我如何获得相互依赖的选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7924195/

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