gpt4 book ai didi

Mathematica 中的函数类型声明

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

关于 mathematica 理解的函数输入数据声明的类型,我多次遇到过这个问题。

Mathematica 似乎理解以下类型声明:_整数,_列表,_?矩阵Q,_?矢量Q

但是:例如_Real、_Complex 声明会导致函数有时不进行计算。知道为什么吗?

这里的一般规则是什么?

最佳答案

当您执行诸如 f[x_]:=Sin[x] 之类的操作时,您所做的就是定义模式替换规则。如果您改为说 f[x_smth]:=5 (如果您尝试两者,请在第二个示例之前执行 Clear[f]),那么您实际上是在说“无论您在哪里看到f[x],检查x的头部是否为smth,如果是,则替换为5"。例如,尝试一下

Clear[f]
f[x_smth]:=5
f[5]
f[smth[5]]

所以,为了回答你的问题,规则是在f[x_hd]:=1;中,hd可以是任何东西并且与x的头部匹配。

还可以有更复杂的定义,例如f[x_] := Sin[x]/; x > 12,如果 x>12 则匹配(当然这可以变得任意复杂)。

编辑:我忘记了真实部分。您当然可以定义Clear[f];f[x_Real]=Sin[x]并且它适用于例如f[12.]。但您必须记住,Head[12.]Real,而 Head[12]Integer code>,这样你的定义就不会匹配。

关于Mathematica 中的函数类型声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5605867/

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