python interpolate.interp1d_将MATLAB的interp1转换为Python interp1d

我正在将MATLAB代码转换为Python代码。在

代码使用MATLAB中的函数interp1。我发现scipy函数interp1d应该是我想要的,但我不确定。你能告诉我我实现的代码是否正确吗?

我的Python版本是3.4.1,MATLAB版本是R2013a,但是代码已经在2010年左右实现了]。在

MATLAB:S_T = [0.0, 2.181716948, 4.363766232, 6.546480392, 8.730192373, ...

10.91523573, 13.10194482, 15.29065504, 17.48170299, 19.67542671, ...

21.87216588, 24.07226205, 26.27605882, 28.48390208; ...

1.0, 1.000382662968538, 1.0020234819906781, 1.0040560245904753, ...

1.0055690037530718, 1.0046180687475195, 1.000824223678225, ...

0.9954866694014762, 0.9891408937764872, 0.9822543350571298, ...

0.97480163751874, 0.9666158376141503, 0.9571711322843011, ...

0.9460998105962408; ...

1.0, 0.9992731388936672, 0.9995093132493109, 0.9997021748479805, ...

0.9982835412406582, 0.9926319477117723, 0.9833685776596993, ...

0.9730725288209638, 0.9626092685176822, 0.9525234896714959, ...

0.9426698515488858, 0.9326788630704709, 0.9218100196936996, ...

0.9095717918978693];

S = transpose(S_T);

dist = 0.00137;

old = 15.61;

ll = 125;

ref = 250;

start = 225;

high = 7500;

low = 2;

U = zeros(low,low,high);

for ii=1:high

g0= start-ref*dist*ii;

g1= g0+ll;

if(g0 <=0.0 && g1 >= 0.0)

temp= old/2*(1-cos(2*pi*g0/ll));

for jj=1:low

U(jj,jj,ii)= temp;

end

end

end

for ii=1:low

S_mod(ii,1,:)=interp1(S(:,1),S(:,ii+1),U(ii,ii,:),'linear');

end

Python:

^{pr2}$

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值