Qia*_* Li 5 wolfram-mathematica
我有一个名单,并采取4个参数的任意函数,比方说{1, 11, 3, 13, 9, 0, 12, 7}和f[{x,y,z,w}]={x+y, z+w},我想要做的是形式,使得原始列表连续4个要素进行评估,以获得新的值作为新列表的组件的新列表,评估必须在原始列表中的每2个位置完成,在这种情况下,结果列表是:
{{12, 16}, {16, 9}, {9, 19}}
Run Code Online (Sandbox Code Playgroud)
注意这里4和2可以改变.如何在Mathematica中方便地做到这一点?我想这就像是Map,但不知道如何联系.
rco*_*yer 14
还有另一种选择Map[f, Partition[...]]:Developer`PartitionMap.哪个工作完全一样Map[f, Partition[list, n, ...]].所以,你的代码就是
Needs["Developer`"]
f[{x_, y_, z_, w_}] = {x + y, z + w};
list = {1, 11, 3, 13, 9, 0, 12, 7};
PartitionMap[f,list, 4, 2]
Run Code Online (Sandbox Code Playgroud)
给出与马克答案相同的结果.
Mar*_*ure 11
f[{x_, y_, z_, w_}] = {x + y, z + w};
list = {1, 11, 3, 13, 9, 0, 12, 7};
f /@ Partition[list, 4, 2]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
202 次 |
| 最近记录: |