我把一些matlab代码转换成python代码并调试这两个代码我从调用cumtrapz
函数得到了不同的结果,我还验证了这两个函数的输入数据是相似的。代码如下:
Python代码
from numpy import zeros, ceil, array, mean, ptp, abs, sqrt, power
from scipy.integrate import cumtrapz
def step_length_vector(ics_y, fcs_y, acc_y, l, sf):
step_length_m1 = zeros(int(ceil(len(ics_y)/2))-1)
for i in range(0, len(ics_y)-2, 2):
av = acc_y[int(ics_y[i]):int(ics_y[i+2])+1]
t = array(range(1, int((ics_y[i+2]-ics_y[i])+2)))/sf
hvel = cumtrapz(t, av - mean(av), initial=0)
h = cumtrapz(t, hvel - mean(hvel), initial=0)
hend = ptp(h)
sl = 6.8*(sqrt(abs(2*l*hend - hend**2)))
step_length_m1[int(ceil(i/2))] = sl
return step_length_m1
Matlab代码
^{pr2}$这两个代码的hvel
变量不同。也许我用错了scipy
cumtrapz
,因为我认为接收到的initial
值是0
。在这两种情况下,输入ics_y(ICsy)
,fcs_y(FCsY)
,acc{l
和{
谢谢!!!在
(如果这个问题是关于
cumtrapz
,那么应该将测试简化为使用matlab和Python中相同的输入数组对cumtrapz
的单个调用。请务必仔细阅读matlab的每个函数和文档。SciPy函数通常不是相应matlab函数的精确副本。)问题是当你同时给出}值时,它们在matlab/octave中给出的顺序是
x
和{x, y
,但在SciPy版本中,它是y, x
。在例如
要获得与^{} 相同的结果:
^{pr2}$相关问题 更多 >
编程相关推荐