使MemberQ可以在Mathematica中列出或者线程化MemberQ函数

时间:2011-07-30 14:35:27

标签: wolfram-mathematica

我试图通过一个列表来链接MemberQ,即:

我有

a={{1, 9}, {2, 5}, {3, 1}, {4, 3}};
b= {1, 5, 2, 6};

理想情况下,我希望有一个线程化且可列出的MemberQ函数TLMemberQ来执行以下操作:

TLMember[a,b]返回{True,True,False,False}。我怎样才能以最快的速度执行此操作。 注意:Thread@MemberQMemberQ@Thread都不起作用。 MemberQ属性为Protected

2 个答案:

答案 0 :(得分:6)

此:

MapThread[MemberQ, {a, b}]

看看它的作用:

Trace[
    MapThread[MemberQ, {a, b}],
    MemberQ
]
(*
{{MemberQ[{1,9},1],True},
 {MemberQ[{2,5},5],True},
 {MemberQ[{3,1},2],False},
 {MemberQ[{4,3},6],False}}
*)

答案 1 :(得分:3)

MemberQ[#[[1]], #[[2]]] & /@ Transpose[{a, b}]