matlab interp1 c,SciPy interp1d结果与MatLab interp1不同[通俗易懂]

matlab interp1 c,SciPy interp1d结果与MatLab interp1不同[通俗易懂]我正在将一个MatLab程序转换为Python,我很难理解为什么scipy.interpolate.interp1d给出的结果与MatlabInterp1不同。在MatLab中,用法略有不同:yi=interp1(x,Y,xi,’cubic’)剪刀:f=interp1d(x,Y,kind=’cubic’)yi=f(xi)对于一个简单的例子,结果是相同的:MatLab软件:interp1…

大家好,又见面了,我是你们的朋友全栈君。

我正在将一个MatLab程序转换为Python,我很难理解为什么scipy.interpolate.interp1d给出的结果与MatlabInterp1不同。

在MatLab中,用法略有不同:yi = interp1(x,Y,xi,’cubic’)

剪刀:f = interp1d(x,Y,kind=’cubic’)

yi = f(xi)

对于一个简单的例子,结果是相同的:

MatLab软件:interp1([0 1 2 3 4], [0 1 2 3 4],[1.5 2.5 3.5],’cubic’)

1.5000 2.5000 3.5000

Python:interp1d([1,2,3,4],[1,2,3,4],kind=’cubic’)([1.5,2.5,3.5])

array([ 1.5, 2.5, 3.5])

但对于现实世界的例子来说,它们并不相同:x = 0.0000e+000 2.1333e+001 3.2000e+001 1.6000e+004 2.1333e+004 2.3994e+004

Y = -6 -6 20 20 -6 -6

xi = 0.00000 11.72161 23.44322 35.16484… (2048 data points)

Matlab软件:-6.0000e+000

-1.2330e+001

-3.7384e+000

7.0235e+000

7.0028e+000

6.9821e+000

剪刀:array([[ -6.00000000e+00],

[ -1.56304101e+01],

[ -2.04908267e+00],

…,

[ 1.64475576e+05],

[ 8.28360759e+04],

[ -5.99999999e+00]])

关于如何得到与MatLab一致的结果有什么想法吗?

编辑:我知道三次插值算法的实现有一定的自由度,这可能解释了我看到的差异。似乎我正在转换的原始MatLab程序应该使用线性插值,所以这个问题可能是没有意义的。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/131343.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • spring starter(怎么编写自己的starter)

    微服务架构从本质上说其实就是分布式架构,与其说是一种新架构,不如说是一种微服务架构风格。简单来说,微服务架构风格是要开发一种由多个小服务组成的应用。每个服务运行于独立的进程,并且采用轻量级交互。多数情况下是一个HTTP的资源API。这些服务具备独立业务能力并可以通过自动化部署方式独立部署。这种风格使最小化集中管理,从而可以使用多种不同的编程语言和数据存储技术。对于微服务架构系统,由于其服务粒度…

    2022年4月10日
    59
  • client的中文意思是什么_java中cin什么意思

    client的中文意思是什么_java中cin什么意思IE中: document.body.clientWidth==>BODY对象宽度 document.body.clientHeight==>BODY对象高度 document.documentElement.clientWidth==>可见区域宽度 document.documentElement.clientHeight==>可见区域高度 FireFox中:

    2025年10月24日
    6
  • c语言int16_msgbox用法举例

    c语言int16_msgbox用法举例在看别人代码的时候看到了__int16定义的变量于是好奇,为什么不用int定义上网查了一下首先要知道这里的16是指16个位一个汉子有两个字节(byte)一个int有4个字节而一个字节有8个位(bit)也就是一个int有32个位(bit)而这里的__int16也就是一个汉字的长度但int是两个汉字的长度这样定义还有一个优点就是无论什么操作系统所定义出来的

    2022年8月15日
    10
  • 倒立摆仿真_基于matlab单摆运动仿真模拟

    倒立摆仿真_基于matlab单摆运动仿真模拟本博文主要学习目的为倒立摆PID控制入门,面向matlab小白,所以挑选最简单的模型和例子写了一篇文章模型已经上传到网上,附上文件链接https://github.com/Yanchuan913/-/blob/main/Inverted_Pendulum_P.slx效果展示倒立摆PID控制matlabsimulink仿真,最简单版本效果展示,内模型的框图总框架包括物理模型部分、控制器部分、环境部分(环境部分都是这么设置的,就不多说)物理模型首先来看物理.

    2022年8月18日
    17
  • Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」

    Sqlserver DateTime转换成SMALLDATETIME时“产生一个超出范围的值”「建议收藏」工作中遇到一个问题,A表中字段(DateTime1)的数据类型为DateTime,新建了一张表B的SMALLDATETIME1字段的数据来自A表的DateTime1但在将A表字段DateTime1导出到B表的SMALLDATETIME1字段时出现了以下错误后经过排查发现在原来是A表DateTime1字段的值有许多是"1753-01-0100:00:00.000",从而导致转换失败…

    2022年7月27日
    12
  • c语言中console.writeline(console.writeline())

    C#中Console.WriteLine()的用法

    2022年4月17日
    191

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号