Я пытаюсь изменить код с Matlab на Python.Я новичок в программировании.
Вот оригинальная часть кода в Matlab:
%% CALCULATE T_MAX, BREAK UP INTO DIVISIONS
T_max = 0.5*v_PM(Me)*RTOD;
DT = (90-T_max) - fix(90-T_max);
T(1) = DT*DTOR;
n = T_max*2;
for m = 2:n+1
T(m) = (DT + (m-1))*DTOR;
%Mach from T(i) using T(i) = v_PM (FALSE POSITION)
x_int = [1 1.01*Me];
func = @(x) T(m) - v_PM(x);
M(m) = fzero(func,x_int);
P(m) = 0 + TR*tan(T(m)); %X-AXIS POINTS
%RRSLOPES
RR(m) = -TR/P(m);
%LR slopes
LR(m) = tan(T(m)+asin(1/M(m)));
SL(m) = -RR(m);
end
А вот моя актуальная часть кода на python, которая не работает:
%% CALCULATE T_MAX, BREAK UP INTO DIVISIONS
T_max = 0.5 * v_PM(Me) * RTOD #max wall angle
DT = (90 - T_max) - np.fix(90 - T_max) #DT is delta angle
T = []
T.insert(0, DT * DTOR)
n = T_max * 2
#Points on axis P[m]
m=2
for m in range(int(n + 1)):
T[m] = (DT + (m - 1)) * DTOR
#Mach from T(i) using T(i) = v_PM (FALSE POSITION)
x_int = np.array([1, 1.01*Me])
func = lambda x : T[m] - v_PM(x)
M[m] = optimize.fsolve(func, x_int)
P[m] = 0 + TR * np.tan(T[m]) #X-AXIS POINTS
#RRSLOPES
RR[m] = -TR / P[m]
#LR slopes
LR[m] = np.tan(T[m] + np.arcsin(1 / M[m]))
SL[m] = -RR[m]
Я не знаю, хорошо ли я изменил это, потому что я только начинаю учиться.Вы можете помочь мне с этим?Кроме того, когда я попытался скомпилировать его, блокнот Jupyter сказал:
D:\ProgramData\Anaconda3\lib\site-packages\ipykernel_launcher.py:4: RuntimeWarning: invalid value encountered in sqrt
after removing the cwd from sys.path.
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-19-27711344e965> in <module>
13 x_int = np.array([1, 1.01*Me])
14 func = lambda x : T[m] - v_PM(x)
---> 15 M[m] = optimize.fsolve(func, x_int)
16 P[m] = 0 + TR * np.tan(T[m]) #X-AXIS POINTS
17 #RRSLOPES
NameError: name 'M' is not defined