具有一个变量常量的mathematica中的MapThread

时间:2012-10-09 23:48:49

标签: map wolfram-mathematica fold

我想使用三个变量的函数折叠(为了求和)两个列表上的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]填充它,但这有点像黑客。任何帮助表示赞赏!

1 个答案:

答案 0 :(得分:0)

你的例子在语法上是不正确的; MapThread只接受3个参数。

而不是For循环尝试

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