公告:网站程序已升级到1.8.3,修复了提问时可能报错的问题,请清除浏览器缓存
2019-11-10

欢迎来到 Mathematica 问答社区

提问时请贴上文本代码

语法高亮:在编辑器中点击

被禁止的话题:广告破解

请阅读:《提问的智慧》

备用域名:mma.ooo

支持LaTex数学公式
行内公式标识符:\$ 或“$\backslash ($”+“$\backslash )$”,
行间公式标识符:\$\$ 或 “$\backslash [$”+“$\backslash ]$”

社区建议QQ群:365716997

分类

0 投票
119 浏览
想生成一簇

{#1, #2, #3}.{a, b, c} + d &

的匿名函数来表示一簇平面,其中形如  {{a,b,c},d} 的数据有 32 个。

也就是要得到形如

{a1#1+b1#2+c1#3+d1 & ,a2#1+b2#2+c2#3+d2 &,..., an#1+bn#2+cn#3+dn &}
分类:列表操作 | 用户: cvgmt (276 分)

2 个回答

+2 投票
f[k_] := Evaluate[{#1, #2, #3, 
      1}.(ToExpression[# <> ToString[k]] & /@ 
       CharacterRange["a", "d"])] &;
f /@ Range[32]

用户: 野鹤 (4.8k 分)
0 投票

想了另外两个方案。

第一个,替换由 x,y,z 定义的函数。第二个,直接来

list = {{{a1, b1, c1}, d1}, {{a2, b2, c2}, d2}, {{a3, b3, c3},d3}};
 Function /@ ({x, y, z}.# & /@ First /@ list + 
    Last /@ list /. {x -> Slot@1, y -> Slot@2, z -> Slot@3})
list = {{{a1, b1, c1}, d1}, {{a2, b2, c2}, d2}, {{a3, b3, c3}, d3}};
Function /@ (Slot /@ Range[3].# & /@ First /@ list + Last /@ list)
用户: cvgmt (276 分)
修改于 用户:cvgmt
...