使用Wolfram语言中的一些过程定义自己的函数

时间:2016-03-14 09:57:19

标签: function stored-procedures wolfram-mathematica procedural-programming wolfram-language

我用一个程序创建了一个函数....

    Func1[n_] := Table[a[i], {i, n}]

返回

     Func1[5]
     {a[1], a[2], a[3], a[4], a[5]}

我也创建了一个带有一些参数或一些参数的函数,几个变量!

    Func1[x_, y_, z_] := (x + y)*z - 1

返回

    Func1[5, 2, 3]
    20

但是,如果我想用几个程序创建一个函数来返回我想要的东西呢? 我已经知道,当一个程序完成后,我必须在此程序结束时输入“;”! 就像for循环一样....

   For[k = 2, k < 3, k++,
       S := Table[a[i], {i, n}];
       B := Dimensions[S][[1]]];
      ]

所以我需要用几个程序创建一个函数!
怎么做?
请帮我!

2 个答案:

答案 0 :(得分:1)

这里有几个例子。请记住使用小写首字母以避免与内置函数冲突,这些函数都以大写字母开头。

s[n_] := Table[a[i], {i, n}]

b[s_] := Dimensions[s][[1]]

For[k = 2, k < 3, k++,
 x = s[k];
 Print[b[x]]]
  

2

For[k = 2, k < 3, k++,
 Print[b[s[k]]]]
  

2

答案 1 :(得分:0)

使用parentheses for grouping
例如

set$s$b[n_Integer] := ($s = Table[a[i], {i, n}];
                       $b = Dimensions[$s][[1]];)

现在,执行后,例如,

set$s$b[5]

一个人会得到

$s
  

{a[1], a[2], a[3], a[4], a[5]}

$b
  

5

但是,在需要执行多个程序的情况下,使用modularity可能是更好的设计选择。