因为一些不得已的原因,现在需要在matlab中调用Python深度强化学习的代码,Matlab向Python的传递状态信息和奖励,训练Python当中的神经网络,再传动作给matlab。目前我也基本了解MATLAB调用Python函数的基本流程,我想请问一下,这样多次调用训练是可行的吗?Matlab调用Python函数,可以对Python代码打断点进行调试吗?谢谢大家。
【相关推荐】
import numpy as np
from scipy import signal
import matplotlib.pyplot as plt
fp = 3500
fs = 5500
Rp = 2.5
Rs = 25
N, fn = signal.ellipord(fp, fs, Rp, Rs, True)
Wn = 2 * np.pi * fn
b, a = signal.ellip(N, Rp, Rs, Wn, 'low', True, 'ba')
f = [0 for i in range(101)]
s = [0 for i in range(101)]
for x in range(101):
f[x] = 100*x
s[x] = 1j*2*np.pi*f[x]
Hs = np.polyval(b, s) / np.polyval(a, s)
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文字体设置-黑体
plt.rcParams['axes.unicode_minus'] = False # 解决保存图像是负号'-'显示为方块的问题
plt.figure(1)
plt.subplot(211)
plt.title('滤波器阶数和截止频率:')
plt.plot(f, 20 * np.log10(abs(Hs)))
plt.axis([0, 10000, -40, 1])
plt.xlabel("频率Hz")
plt.ylabel("幅度dB")
plt.subplot(212)
plt.plot(f, np.angle(Hs))
plt.xlabel("频率Hz")
plt.ylabel("相角rad")
plt.axis([0, 10000, -4, 4])
plt.show()
该文章对巴特沃斯滤波器与椭圆滤波器的原理并没有深入研究,只是进行了简单的移植。
引用 皆我百晓生 小程序回复内容作答:
是的,你可以在MATLAB中调用Python深度强化学习的代码。你可以通过使用MATLAB的Python引擎来实现这一点。
MATLAB的Python引擎允许你在MATLAB中调用Python函数和模块,传递参数并获取返回值。你可以使用MATLAB的py
函数将Python代码或函数导入到MATLAB工作空间中。
对于多次调用训练,你可以在MATLAB中使用循环来多次调用Python函数。你可以根据你的需求设置循环次数或其他终止条件。
关于调试Python代码,一种方法是在MATLAB中调用Python函数之前将其先作为独立的脚本运行并进行调试。当你确保Python代码可靠运行后,再将其导入到MATLAB中。在MATLAB中调用Python时,你可以在MATLAB代码中设置断点,以便在调用Python函数时进行断点调试。
希望这些信息能对你有所帮助!