我早些时候问过这个问题,但是它不被理解,因此被删除了,我没有得到答案。关于此问题的最佳参考是以下文档,该文档说明了Python和Matdeck的集成。 https://labdeck.com/examples/python/fft-matdeck-python.pdf?39fd30&39fd30
MatDeck提供了文本编辑,MatDeck脚本和Python中的计算机编程,数学,数据可视化以及其他多项功能的集成。 MatDeck脚本基于C ++。
这里是一个示例,显示了MatDeck和Python之间变量的使用和交换。由于MatDeck基于C ++,因此变量之间是否存在类型匹配?此处,在示例代码中,有tolist()将Python类型的变量转换为可由c ++识别的列表。可以用其他方式做到这一点吗?
这是在MatDeck中计算FFT的方式。这是MatDeck脚本。
nn := 4096 //length of the signal
x_in := normrandvec(0, 1, nn) //signal as random noise
X_in1 := fft1(x_in)
freq := ynodes(f, 0, 1, nn) //frequency axis
graph := join_mat_cols(freq, abs(X_in1)) //Amplitude spectrum of the signal
ss := 0 //Variable defined in MatDeck to store result in Python
这是使用Python计算FFT的方式。 Python代码使用MatDeck变量在MatDeck文档中编写。
这是MatDeck中的Python代码
##py
from scipy.fftpack import fft #we need fft function
ss1 = fft(x_in)
ss=ss1.tolist() #convert to list which is converted in C++ vector
import matplotlib.pyplot as plt #It is possible to plot signal in Python, as well.
plt.plot(freq, abs(ss1))
plt.grid()
plt.show()
###
// Python代码结束
我们可以在MatDeck中使用变量ss来绘制结果。
graphP := join_mat_rows(freq, abs(ss))
MatDeck(C ++)和Python之间的自然转换是什么?