【问题标题】:MapThread in mathematica with one variable constantMathematica 中的 MapThread 具有一个变量常量
【发布时间】:2012-10-09 23:48:48
【问题描述】:

我想使用三个变量的函数将 MapThread 折叠(以求和)两个列表,其中第三个变量在 Mapthread 上是常量。我想完成这样的事情:

nList = {}; For[i = 0, i <= Length[N0], i++, nSum = 0; Fold[Plus,0,MapThread[n,T,M,N0[i]]]];

其中 n 满足 n[t_,m_,n0_] 我可以制作一个长度 [T] 的列表 N0' 并用 N0[i] 填充它,但这有点小技巧。任何帮助表示赞赏!

【问题讨论】:

  • 我想提供帮助,但我发现这个问题很难阅读。您能否尝试使其更具可读性,并给出您想要的输入和输出的简单示例?

标签: map wolfram-mathematica fold


【解决方案1】:

您的示例在语法上不正确; MapThread 只接受 3 个参数。

代替For循环试试

   Plus@@MapThread[n[#1,#2,N0]&,{T,M}]
  1. Idiom Plus@@(...) 产生给定列表的总和(它将Plus 应用于列表)
  2. Mathematica 的 lambda 表达式非常强大,即无名函数。为方便起见,它的符号很短:您用占位符#1#2#3、...替换的每个参数,在您指定的函数体之后,它是一个带有&amp; 符号的无名函数。等效地,您可以写Function[{t,m},n[t,m,N0]] 而不是n[#1,#2,No]&amp;。请参阅Function 的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-05
    • 2016-04-27
    相关资源
    最近更新 更多