Wolfram mathematica mathematica函数中的多语句
我想知道如何在Mathematica中计算函数中的多个语句。Wolfram mathematica mathematica函数中的多语句,wolfram-mathematica,Wolfram Mathematica,我想知道如何在Mathematica中计算函数中的多个语句。 例如 我知道这可以修改为(x+5)^2,但最初我想从函数中的文件中读取数据,并在执行一些数据操作后打印结果。您正在寻找的(缩写;): 括号是必需的,因为的优先级很低 Szabolcs打电话给我,你不能写: f[x_]:= (x = x+5 ; x^2) 有关解释和备选方案,请参阅 ,你应该听的人说,东西应该本地化。我没有在上面这样做,因为我想强调CompoundExpression是一种特别适合于“and then”结构的方法。正
例如 我知道这可以修改为
(x+5)^2
,但最初我想从函数中的文件中读取数据,并在执行一些数据操作后打印结果。您正在寻找的(缩写;
):
括号是必需的,因为的优先级很低代码>
Szabolcs打电话给我,你不能写:
f[x_]:= (x = x+5 ; x^2)
有关解释和备选方案,请参阅
,你应该听的人说,东西
应该本地化。我没有在上面这样做,因为我想强调CompoundExpression
是一种特别适合于“and then”结构的方法。正如本文所述,这将影响东西的全局值,这可能是您实际想要做的,也可能不是。如果不是,请参见上面链接的答案,以及:
如果要将多个命令分组并输出最后一个命令,请在它们之间使用分号(;),如
f[y_]:=(x=y+5;x^2)
只是不要使用一个简单的方法;最后一句话
如果您的命令集越来越大,您可能希望使用或之类的作用域结构。一些人已经提到您可以使用:
但是,如果在表达式中使用与参数中相同的变量x
f[x_] := (x=x+5; x^2)
然后,在使用数字计算函数时会出现错误。这是因为:=
基本上定义了lhs模式变量的替换,即f[1]
计算为(不正确的)(1=1+5;1^2)
因此,正如Sjoerd所说,有时使用模块
(或块
),但是!)来定位函数变量:
f[x_] := Module[{y}, y=x+5; y^2]
最后,如果需要修改其参数的函数,则可以设置属性HoldAll
:
Clear[addFive]
SetAttributes[addFive, HoldAll]
addFive[x_] := (x=x+5)
然后用它作为
a = 3;
addFive[a]
a
哇,30秒!我将删除我的:),但前提是您使用另一个变量或HoldAll
或避免明显错误的东西来更正x=x+5
位@真糟糕!速度有缺点,这太荒谬了。我想知道Wizard先生是否已经发现了时间旅行的秘密。我认为东西
应该本地化。我认为不管程序大小,都应该本地化变量,因为程序确实在发展,而未本地化的变量会带来麻烦。非常感谢。我想这会管用的。“我觉得Mathematica的帮助很可怜,他们应该让它更实用、更友好……除此之外,我还喜欢它。”newGuy我发现Mathematica文档比我见过的大多数其他程序都优秀。在文档浏览器中输入tutorial/SequencesOfOperations
,然后单击虚拟书按钮。
f[x_] := Module[{y}, y=x+5; y^2]
Clear[addFive]
SetAttributes[addFive, HoldAll]
addFive[x_] := (x=x+5)
a = 3;
addFive[a]
a