大家好,又见面了,我是你们的朋友全栈君。
我正在将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}$
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/132160.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...