Matlab的样条函数等价于Python,三个输入。

2024-10-01 00:33:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在把一个matlab脚本转换成python,我有一个障碍。 为了对信号使用三次样条插值。脚本使用命令样条线和三个输入。信号和频率如下。在

cav_sig_freq = spline(f_o, c_signal, freq)
f_o = 1x264, c_signal = 1x264 and freq = 1x264

从matlab的文档中可以看到“s=spline(x,y,xq)返回与xq中的查询点对应的插值值s的向量。s的值由x和y的三次样条插值确定

在python中,我正在努力寻找正确的python等价物。除了我在numpy和Scipy文档中找到的不同插值函数之外,让我们使用第三个输入,就像在Matlab中一样。在

谢谢你抽出时间来读这篇文章。如果有什么建议我可以说得更清楚,我很乐意这样做。在


Tags: 文档命令脚本signal信号频率样条插值
2条回答

您是否尝试过塞皮。内插?如果我正确地理解了MatLab的部分,那么我认为这是可行的。在

import numpy as np
from scipy.interpolate import InterpolatedUnivariateSpline as ius

a = [1,2,3,4,5,6]
b = [r * 2 for r in a]
c = ius(a, b, k=1)

# what values do you want to query?
targets = [3.4, 2.789]

interpolated_values = c(targets)

看起来这可能比MatLab提供的代码多了一步,但我认为这正是您想要的。在

基本上,你首先需要生成一个类似于插入函数的东西,然后给出你的观点。像这样使用变量名:

from scipy import interpolate
tck = interpolate.splrep(f_o, c_signal, s=0)

然后将此tck应用于您的要点:

^{pr2}$

关于这个的更多信息,你可以阅读这个post。在

相关问题 更多 >