我一直想知道如何做到这一点。
我有2个python脚本,主要调用另一个并传递3个变量,然后这个只有一个函数的脚本返回长度为4的元组。最后我通过第一个调用这个脚本。
我的问题是,是否有任何方法可以使元组在第一个脚本中创建一个新变量,例如矩阵或各种向量,从而避免一遍又一遍地调用该函数。
脚本1
import numpy as np
import scipy.integrate as integrate
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from matplotlib import cm
from Funcion_gamma import Fgamma
import time
start_time = time.time()
"Aluminio"
E=7e10 #Modulo de Young
v=0.33 #Modulo de Poison
G=2.63e10 #Modulo de cizalladura
h=0.00286 #Anchura de la placa
a=0.85 #Lado 1 de la placa
b=0.65 #Lado 2 de la placa
rho=2703.6 #Densidad del material
Kmuelle=3
"M y N"
m=7
n=m
Fgamma(Kmuelle,a,m)
脚本2
import sympy as sp
import numpy as np
def Fgamma(KK,aa,M):
'Definicion de las variables simbolicas'
g, a, A, C, D, K, x = sp.symbols("g a A C D K x")
'Funcion Gartner y sus derivadas'
X=(A*sp.cos(g*x/a))+(sp.sin(g*x/a))+(C*sp.exp(-g*x/a))+(D*sp.exp(-g*(a-x)/a))
dx1=sp.diff(X,x,1)
dx2=sp.diff(X,x,2)
'Ecuaciones a resolver'
eq1= sp.Eq(X.subs(x,0),0)
eq2= sp.Eq(dx2.subs(x,0)/dx1.subs(x,0),K)
eq3= sp.Eq(X.subs(x,a),0)
eq4= sp.Eq(dx2.subs(x,a)/dx1.subs(x,a),-K)
'Resolucion de las ecuaciones'
D1=sp.solve(eq1,D)
eq33 = eq3.subs(D, D1[0])
C33=sp.solve(eq33,C)
D11=D1[0].subs(C,C33[0])
eq22=eq2.subs([(C, C33[0]),(D,D11)])
A22=sp.solve(eq22,A)
eq44=eq4.subs([(C,C33[0]),(D,D11)])
A44=sp.solve(eq44,A)
'Obtencion de A'
AF=A22[0]-A44[0]
AFF=sp.sympify(AF.subs([(K,KK),(a,aa)]))
'Calculo de las raices de gamma'
nn=np.linspace(0,M,num=M,endpoint=False,dtype='int')
gamma=np.zeros(M)
Afinal=np.zeros(M)
Cfinal=np.zeros(M)
Dfinal=np.zeros(M)
for jj in nn:
gamma[jj]=sp.nsolve(sp.Eq(AFF,0),(3+(jj*np.pi)))
Afinal[jj]=AFF.subs(g,gamma[jj])
Cfinal[jj]=C33[0].subs([(A,Afinal[jj]),(a,aa),(g,gamma[jj])])
Dfinal[jj]=D11.subs([(A,Afinal[jj]),(a,aa),(g,gamma[jj])])
print gamma
return gamma,Afinal,Cfinal,Dfinal
答案 0 :(得分:0)
假设您有两个脚本的文件名是script1.py和script2.py在同一目录中
要在Femma
中调用文件script2.py
中名为script1.py
的函数,您将使用
在文件script1.py中
import script2
script2.Femma(args)