Конвертировать переменные из MatDeck в Python и наоборот - PullRequest
0 голосов
/ 30 июня 2019

Я задавал этот вопрос ранее, но он не был понят, и поэтому он был удален, и я не получил ответа.Лучшая ссылка на этот вопрос - следующий документ, который иллюстрирует интеграцию 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?

...