我一直在反弹这个问题的一些想法,但认为我会咨询在线社区,看看是否有更好的选择。使用python进行阶跃函数分析
所以我有阶梯状的函数图形是这样的:
而与此我想计算步骤之间的y位移。
正如人们所看到的,这些步骤并不是完全水平的,而是在升级之前取一小部分y值。
所以,问题是:
(1)什么是“正确”的方式(如果有的话),每次取“水平”的平均y值?我不确定我应该在哪里使用我最左边的点和最右边的每个点 - 所以我可以将这些点之间的数值取平均值,然后达到每个级别的“平均值”,希望这可以使得感。正如人们所看到的,它们并不全都在x中位移相同。最终目标是获得水平之间的y位移,一旦我获得每个“水平”的“平均”值,取得差异是微不足道的。
我可能正在考虑采用曲线的导数,并且在每个关卡的左右两个点上看到其等于零的位置,但我不确定它会起作用,因为每个关卡都包含点( dy/dx = 0) - 所以我可以使用一些见解。
谢谢:)噢 - 这必须在Python中完成 - 它不仅仅是这些图形,而且它们中的很多具有类似的风格,所以代码必须足够通用以处理其他类似步骤图表。
日期文件图1:http://textuploader.com/5nwsh
数据文件图2:http://textuploader.com/5nwsv
数据文件图3:http://textuploader.com/5nwsj
散点图Python代码:
import numpy as np
import matplotlib.pyplot as plt
import pylab as pl
data=np.loadtxt('data-file')
x= data[:,0]
y=data[:,1]
pl.plot(data[:,0],data[:,1],'r')
pl.xlabel('x')
pl.ylabel('y')
plt.show()
@ roadrunner66难道没关系,如果我们倾斜或不?水平之间的差异将是相同的Y位移? – Scientized
我相信你的解决方案应该放在你想要了解的物理现实的模型中。例如。你想旋转图形首先与x和y对齐还是当前坐标系统是你需要的坐标系统?如果这些步骤非常周期,则FFT可能是测试周期性的一种方式。衍生工具将允许您通过设置偏移量来消除倾斜度,使得大多数点的平均值为零,如您所述。 – roadrunner66
否。如果您将图形倾斜为近似水平,则“y轴”中不会出现“step”。所以需要对步骤进行定义,我认为您的意思是,图形以类似于楼梯的方式倾斜,就像在第二张图中一样。 – roadrunner66