matlab的代码在python可以运行吗_从Matlab运行Python代码

论坛 期权论坛 编程之家     
选择匿名的用户   2021-5-24 08:44   1131   0

我真的很感谢在运行Matlab中用Python3编写的代码方面的一些帮助。

我的Python代码加载各种库并使用它们执行微分方程的数值积分(对于numpy向量:e_数组)。

我想从Matlab调用的Python代码如下:from numba import jit

from scipy.integrate import quad

import numpy as np

@jit(nopython = True)

def integrand1(x,e,delta,r):

return (-2*np.sqrt(e*r)/np.pi)*(x/np.sqrt(1-x**2))/(1+(delta+2*x*np.sqrt(e*r))**2)

@jit(nopython = True)

def f1(e,delta,r):

return quad(integrand1, -1, 1, args=(e,delta,r))[0]

@jit(nopython = True)

def runge1(e,dtau,delta,r):

k1 = f1(e,delta,r)

k2 = f1((e+k1*dtau/2),delta,r)

k3 = f1((e+k2*dtau/2),delta,r)

k4 = f1((e+k3*dtau),delta,r)

return e + (dtau/6)*(k1+2*k2+2*k3+k4)

time_steps = 60

e = 10

dtau=1

r=1

delta=-1

e_array = np.zeros(time_steps)

time = np.zeros(time_steps)

for i in range(time_steps):

e_array[i] = e

time[i] = i*dtau

e = runge1(e,dtau,delta,r)

理想情况下,我希望能够调用这个Python代码(pythoncode.py)把它当作一个Matlab函数,输入参数:时间步长、e、dtau、r和delta。我很乐意看到这样的解决方案:

^{pr2}$

在哪里pythoncode.py被视为一个Matlab函数,该函数获取所述参数,将其输入Python代码并返回Matlab vector e_数组。在

我想指出的是,我想从Matlab中调用一些额外的Python代码,我希望从您对这个特定Python代码的回答中了解如何做到这一点。

一个相关的问题涉及到我在Python代码中使用的Python库:有没有一种方法可以“编译”Python代码,这样我就可以在Matlab中调用它,而不用在运行Matlab代码的计算机上安装它使用的库(例如numba库)?在

非常感谢你的帮助,

反卫星

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:3875789
帖子:775174
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP