Я задавал этот вопрос ранее, но он не был понят, и поэтому он был удален, и я не получил ответа.Лучшая ссылка на этот вопрос - следующий документ, который иллюстрирует интеграцию Python и Matdeck.https://labdeck.com/examples/python/fft-matdeck-python.pdf?39fd30&39fd30
MatDeck обеспечивает интеграцию редактирования текста, компьютерного программирования в сценарии MatDeck и Python, математики, визуализации данных и некоторых других функций.Сценарий MatDeck основан на C ++.
Вот пример, который показывает использование и обмен переменных между MatDeck и Python.Поскольку MatDeck основан на C ++, существует ли совпадение типов между переменными?Здесь в коде примера есть tolist () для преобразования переменной типа Python в список, который может быть распознан с ++.Можно ли сделать это по-другому?
Вот как FFT рассчитывается в MatDeck.Это скрипт 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 используется для вычисления БПФ.Код Python написан в документе MatDeck с использованием переменных MatDeck.
Это код Python в MatDeck
##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
Мы можем использовать переменнуюss в MatDeck для построения результата.
graphP := join_mat_rows(freq, abs(ss))
Каковы естественные преобразования между MatDeck (C ++) и Python?