登录论坛

查看完整版本 : 我是一个新手,问一个常识性问题,各位帮帮忙啊


xiaolinxianju
2009-05-22, 00:26
Wedge[x_?NumericQ ,y_?NumericQ]:=x y ;
Wedge[arg1_,y_?NumericQ]:=y arg1;
Wedge[x_?NumericQ, arg2_]:=x arg2;
Wedge[x_?NumericQ arg1_,y_?NumericQ]:=x y arg1;

各位帮帮忙,上面这四句话是什么意思?能帮我分析一下运行的结果吗?谢谢大家了!Wedge是自己定义的一个东西,尤其x_?NumericQ 是什么意思?好像是匹配的意思,但是具体的不是很清楚。
还有一个问题就是Mathematica中经常有“x_ y_  ”这种表达方式,呵呵,不知道是不是有什么特别的含义?

zsy312
2009-05-25, 22:44
这是函数定义的一般方式,不然在函数f[x]=...中就把它当成一个定值x了,除非x取定值,f给一个数,否则,总不用等号后边的数变换,还是显示原样,这时,你输入f[y],他也给你输出f[y],至于后边的是起限制作用的,没见过加问号的如:NumericQ指数值,只有当输入为数值时才会代入右边,否则不解释,原样返回,如这时再输入f[3x],它给你返回原样。