Wolfram mathematica 在y'上操作;{x1,y1},{x2,y2},{xn,yn}列表的s
我一直在绞尽脑汁,想不出一种方法来方便地对Wolfram mathematica 在y'上操作;{x1,y1},{x2,y2},{xn,yn}列表的s,wolfram-mathematica,Wolfram Mathematica,我一直在绞尽脑汁,想不出一种方法来方便地对{{x1,y1},{x2,y2},{xn,yn}形式的列表的y值应用操作。此列表的格式主要用于使用ListPlot[]进行打印。 我希望应用的操作类型包括: 数学运算。例:LowpassFilter[y's](我知道不是逐点) 通用数学逐点运算。例:y's*10+2 我知道我可以转置,然后翻转列表,然后指向每个元素,然后转置,然后翻转,覆盖原始列表。在处理完每一个案件后,这变得很烦人。我打赌有一个切肉刀的方法可以做到这一点。或者,在易于绘制和操作的列
{{x1,y1},{x2,y2},{xn,yn}
形式的列表的y值应用操作。此列表的格式主要用于使用ListPlot[]进行打印。
我希望应用的操作类型包括:
- 数学运算。例:
(我知道不是逐点)LowpassFilter[y's]
- 通用数学逐点运算。例:
y's*10+2
谢谢假设您将列表命名为
l
,即
l={{x1,y1},{x2,y2},{xn,yn}
您可以通过以下方式获得所有y
s:
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+10x1},{x2,2+10x2},{xn,2+10xn}
这允许我得到y,但是我需要做
转置[{l[[All,1]],I[[All,2]]*10+2}]
来得到一个正确的l
。我想这个符号不错,我可以把它定义为一个函数。我想就是这样。f[y's]
工作得非常好,就像2+10*y's
。但是LowpassFilter[y's]
并不令人遗憾,因为这个函数需要一个像{y1,y2,y3…}
这样的dim数组。在这种情况下,应该使用LowpassFilter[array[[All,2]]]
并替换原始数组中的值。