对 {{x1,y1},{x2,y2},...{xn,yn}} 列表的 y 进行操作
Operate on the y's of a {{x1,y1},{x2,y2},...{xn,yn}} list
我一直在摸不着头脑,我想不出一种方法来方便地将操作应用于 {{x1,y1},{x2,y2},...{xn,yn}}
形式的列表的 y 值。该列表采用这种形式,主要用于 ListPlot[] 绘图。
我想应用的操作类型包括:
- Mathematica 运算。例如:
LowpassFilter[y's]
(不是逐点的,我知道)
- 通用数学逐点运算。例如:
y's*10 + 2
我知道我可以转置然后 filpity-flop 翻转列表,然后定位每个元素,然后转回并 flopity-flip 并覆盖原始列表。在处理完每个案例后,这变得很烦人。我敢打赌,有一种切肉刀的方法可以做到这一点。或者将值保存在易于绘制和操作的列表中的最佳方式是什么?
谢谢
假设您将列表命名为 l
,即
l={{x1,y1},{x2,y2},...{xn,yn}}
您可以通过以下方式获取所有 y
:
ylist=l[[All,2]]
Map[{#[[1]],2+10 #[[2]]}&,{{x1,y1},{x2,y2},...{xn,yn}}]
MapAt[2+10#&,{{x1,y1},{x2,y2},...{xn,yn}},{All,2}]
如果需要对'y'列表进行列表操作,可以这样操作:
Transpose@MapAt[LowpassFilter[#,1]&,
Transpose@{{x1,y1},{x2,y2},...{xn,yn}},2]
{#, 10 # + 2} & @@@ lst
{{x1, 2 + 10 x1}, {x2, 2 + 10 x2}, {xn, 2 + 10 xn}}
我一直在摸不着头脑,我想不出一种方法来方便地将操作应用于 {{x1,y1},{x2,y2},...{xn,yn}}
形式的列表的 y 值。该列表采用这种形式,主要用于 ListPlot[] 绘图。
我想应用的操作类型包括:
- Mathematica 运算。例如:
LowpassFilter[y's]
(不是逐点的,我知道) - 通用数学逐点运算。例如:
y's*10 + 2
我知道我可以转置然后 filpity-flop 翻转列表,然后定位每个元素,然后转回并 flopity-flip 并覆盖原始列表。在处理完每个案例后,这变得很烦人。我敢打赌,有一种切肉刀的方法可以做到这一点。或者将值保存在易于绘制和操作的列表中的最佳方式是什么?
谢谢
假设您将列表命名为 l
,即
l={{x1,y1},{x2,y2},...{xn,yn}}
您可以通过以下方式获取所有 y
:
ylist=l[[All,2]]
Map[{#[[1]],2+10 #[[2]]}&,{{x1,y1},{x2,y2},...{xn,yn}}]
MapAt[2+10#&,{{x1,y1},{x2,y2},...{xn,yn}},{All,2}]
如果需要对'y'列表进行列表操作,可以这样操作:
Transpose@MapAt[LowpassFilter[#,1]&,
Transpose@{{x1,y1},{x2,y2},...{xn,yn}},2]
{#, 10 # + 2} & @@@ lst
{{x1, 2 + 10 x1}, {x2, 2 + 10 x2}, {xn, 2 + 10 xn}}