0

我想使用三个变量的函数将 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_] 我可以制作一个长度为 N0' 的列表 [T] 并用 N0[i] 填充它,但这有点小技巧。任何帮助表示赞赏!

4

1 回答 1

0

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

而不是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
于 2012-10-11T07:47:53.653 回答