【问题标题】:Defining Your Own Functions with a few procedures in Wolfram Language用 Wolfram 语言中的几个过程定义您自己的函数
【发布时间】:2016-03-14 09:57:19
【问题描述】:

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

    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]]];
      ]

所以我需要创建一个包含多个过程的函数!
怎么办?
请帮我!

【问题讨论】:

  • 我投票决定将此问题作为题外话结束,因为它是 Mathematica.SE 上的主题

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


【解决方案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

【讨论】:

    【解决方案2】:

    使用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 可能是更好的设计选择。

    【讨论】:

      猜你喜欢
      • 2017-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多