如何 select 数学中 50X6 列表中的 x、z 和 vx、vz 列列表

How to select the x,z and vx, vz columns list from a 50X6 list in mathematica

我正在加载每行包含 6 个元素的数据:(x,y,z,vx,vy,vz)

data = Import["http://pastebin.com/raw/6Werdnpf"];
vecdata = Partition[#, 3] & /@ DeleteDuplicates[data];

我试图在 x-y, y-z, x-z 平面上进行所有投影,但是在 Map 中使用它时我无法传递 TakePart 参数.

这将采用分量 (x,y) 和 (vx,vy):Map[Most, vecdata, {2}]

但我还想 y-zx-z 使用 Map[Take, vecdata, {2}]

你写了

Map[Most, vecdata, {2}]

这相当于下面的表达式

Map[Part[#, {1, 2}] &, vecdata, {2}]

Map[{#[[1]], #[[2]]} &, vecdata, {2}]

Apply[{#1, #2} &, vecdata, {2}]

您需要的输出可以通过

实现
xy = Map[Most, vecdata, {2}]

yz = Map[Rest, vecdata, {2}]

xz = Apply[{#1, #3} &, vecdata, {2}]

有时这样做对代码可读性有好处:

extractxz[{{x_, y_, z_}, {vx_, vy_, vz_}} ] := {x, z}
extractxz /@ vecdata

或没有第一个分区步骤:

extractxz[{x_, y_, z_, vx_, vy_, vz_} ] := {x, z}
extractxz /@ data