Python中是否存在类似MATLAB fnval函数的替代工具?
替代MATLAB fnval的Python方案(csaps样条求值)
csaps库返回的样条对象本身支持直接调用求值,完全等价于MATLAB的fnval函数,不需要额外工具。
代码对比示例
MATLAB 原代码
x = 1:5; y = [2, 3, 1, 4, 2]; % 创建三次样条 sp = csaps(x, y); % 使用fnval求值 xi = linspace(1,5,100); yi = fnval(sp, xi);
Python 迁移代码
import numpy as np from csaps import csaps x = np.array([1, 2, 3, 4, 5]) y = np.array([2, 3, 1, 4, 2]) # 创建三次样条 sp = csaps(x, y) # 直接调用样条对象完成求值,对应MATLAB的fnval xi = np.linspace(1, 5, 100) yi = sp(xi)
补充说明
csaps返回的Spline实例实现了__call__方法,传入待计算的点数组即可得到插值结果,和fnval的行为完全一致。如果需要手动操作样条参数,也可以通过sp.x(节点)、sp.c(系数)等属性直接访问,自行计算求值,但直接调用对象是最简洁高效的方式。
内容的提问来源于stack exchange,提问作者Pooia
相关产品推荐
相关产品推荐

