Python矩阵嵌套循环代码优化咨询:MATLAB转译后效率提升
Python多嵌套循环代码高效优化方案求助
我有多年MATLAB编程经验,刚接触Python。需要通过多矩阵嵌套循环求解一系列方程,已将MATLAB实现逻辑借助ChatGPT转译为Python语法(使用Python 3.9及Spyder界面),但运行效率极低。此前尝试用itertools优化未成功,现寻求该代码的具体高效优化方案,相关代码如下:
import numpy as np R1init=[] R2init=[] L1init=[] L2init=[] p1init=[] p2init=[] m1init=[] m2init=[] dVrinit=[] dVlinit=[] R1 = np.arange(50, 200.001, 2) R2 = R1 # Since R1 and R2 are identical L1 = -1*R1 L2 = np.arange(-50,-300.001,-10) #converted values to be thousands, assuming this would help with matrix sizes. dVl = 194329/1000 dVr = 51936/1000 dVg = 188384/1000 DR = 0. DB = 0. m1 = np.abs(dVl / R1) m2 = np.abs(dVr / L2) j1 = 0 j2 = 0 for i in R1: for j in R2: for k in L1: for m in L2: for n in m1: for q in m2: p1 = ((j2*(1+q)-q)*m+j+dVr)/i p2 = 1-j2*(1+q)+q-(i/m)*(1-j1*(1+n)+n-p1)+dVg/m dVrchk = (q-(j2*q)-q)*m+(p1*i)-j+DR+DB dVlchk =(j1-n+(j1*n))*i+k-(p2*m) dVgchk = (1-j1-p1+n-j1*n)*i-(1-j2-p2+q-j2*q)*m if 0<p2<1.05 and 0<p1<1.05 and dVl-100<dVlchk<dVl+100 and dVr-100<dVrchk<dVr+100: R1init.append(i) R2init.append(j) L1init.append(k) L2init.append(m) p1init.append(p1) p2init.append(p2) m1init.append(n) m2init.append(q) dVrinit.append(dVrchk) dVlinit.append(dVlchk)
内容的提问来源于stack exchange,提问作者Nikole
相关产品推荐
相关产品推荐

