如何 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
中使用它时我无法传递 Take
或 Part
参数.
这将采用分量 (x,y) 和 (vx,vy):Map[Most, vecdata, {2}]
但我还想 y-z
、x-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
我正在加载每行包含 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
中使用它时我无法传递 Take
或 Part
参数.
这将采用分量 (x,y) 和 (vx,vy):Map[Most, vecdata, {2}]
但我还想 y-z
、x-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