필터 지우기
필터 지우기

How this code will look like for matlab?

조회 수: 2 (최근 30일)
Vika
Vika 2023년 10월 18일
댓글: Rena Berman 2023년 11월 27일
% Initialization
delx = 1000
delt = 5
n = 211
x = np.arange(0,n*delx,delx)
h = np.zeros(n)
h[:int(l2/delx-1)] = h2
for i in range(int(l1/delx-1),int((l1+l3)/delx)):
h[i] = h2+(h1-h2)/l3*delx*(i-int(l1/delx-1))
h[int((l2+l3)/delx):n] = h1
% Depth in channel
plt.plot(range(0,n),-h)
plt.xlabel('simulation node')
plt.ylabel('Depth, m')
plt.show()
% Initial data
t = 0. # time
kt = 0 # iteration counter
q = np.zeros(n) # flow (barotropic velocity*depth*channel width)
z = np.zeros(n-1) # Level
# setting the level at the initial time
for i in range (int(n-1-l/delx-1),n-1):
z[i] = a*np.cos(2*np.pi/2/l*(x[i]-x[int(n-1-l/delx)-1])-np.pi/2)
qold = q
zold = z
# Level at the initial time
plt.plot(range(0,n-1),z)
plt.plot(range(0,n),q)
plt.xlabel('simulation node')
plt.ylabel('Elevation, m')
plt.title('t = 0')
plt.show()
while t<t_stop : # time loop
q[0] = 0. # boundary condition on the left solid boundary (impenetrability)
for i in range(1,n-1): # cycle for calculating flows (speed) by channel length
q[i] = qold[i] - delt*g*b*h[i]*(zold[i]-zold[i-1])/delx
q[n-1] = b*zold[n-2]*np.sqrt(g*h[n-2]) # boundary condition on the right liquid boundary (radiation)
for i in range(0,n-1): # cycle for calculating the level based on the channel length
z[i] = zold[i] - delt/b*(q[i+1]-qold[i])/delx
t = t + delt
kt+= 1
qold = q # override new thread array (speed)
zold = z # override new level array
#output
if kt % 20 == 0: # frequency of results output
print('t = ', t/60, 'min')
fig, axs = plt.subplots(2,1,gridspec_kw={'height_ratios': [2, 1]})
axs[0].plot(x[:-1]/1000,z)
axs[0].set_ylabel('Elevation, m')
axs[1].plot(x/1000,-h)
axs[1].set_xlabel('Distance, km')
axs[1].set_ylabel('Depth, m')
plt.show()

답변 (1개)

Sulaymon Eshkabilov
Sulaymon Eshkabilov 2023년 10월 18일
You can convert a Python code into MATLAB code using 3rd party applications like this one

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by