Mathematica里面的*Thread类函数

2025-11-15 05:23:52

1、Thread[f[{a,b,c}]]

将f作用到列表的每一个元素里面,形成新的列表。

这代码还可以写成:f/@{a,b,c},其中/@是Map的意思,就是把f作用于列表里面第一层的每一个元素。

Mathematica里面的*Thread类函数

2、如果两个列表对应的元素相等,那么就可以转化为方程的列表:

Thread[{a+b,b+c,c+a}=={5,6,7}]

Mathematica里面的*Thread类函数

3、对列表里面的元素进行平方运算:

(#^2&)/@{a,b,c}

还可以简单的写成:

{a,b,c}^2

Mathematica里面的*Thread类函数

4、如果列表有两层,看看Thread和Map会有什么作用:

thread[f[{{a,b,c,d},{p,q,r,s}}]]

f/@{{a,b,c,d},{p,q,r,s}}

从运行的结果,可以看出来,f只能作用于列表的第一层。

Mathematica里面的*Thread类函数

5、MapThread[f,{{a,b,c,d},{p,q,r,s}}]的作用如下:

Mathematica里面的*Thread类函数

6、MapThread后面的列表,需要对应的元素数目相同。否则:

MapThread[f,{{a,b,c,d},{p,q,r,s,t}}]

结果Mathematica报错。

Mathematica里面的*Thread类函数

7、AssociationThread[{a,b,c,d}->{p,q,r,s}]

创建一个关联线程:

Mathematica里面的*Thread类函数

8、f@@{a,b,c,d},相当于用Apply来构造一个多元函数:

Apply[f,{{a,b,c,d},{p,q,r,s,t}}]

Apply[f,{{a,b,c,d}}]

Apply[f,{a,b,c,d}]

Mathematica里面的*Thread类函数

9、MapAll的作用,需要你自己去体会:

MapAll[f,{{a,b,c,d},{p,q,r,s,t}}]

MapAll[f,{{a,b,c,d}}]

MapAll[f,{a,b,c,d}]

f//@{a,b,c,d}

Mathematica里面的*Thread类函数

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢