Использование кода MATLAB в среде Engee¶
В данном примере демонстрируется вызов функций MATLAB в Engee, а также их применение и сравнение с функциями среды.
Построение кривых в Engee:¶
Подключаем бэкенд – метод отображения графики:
using Plots
Генерируем два сигнала:
A = sin.(range(0, 2pi, length=100)')' # синусоида
B = @. sin(A) + 0.1 * randn() # зашумлённая синусоида
C = 1:1:100;
Отображаем на графике два сигнала:
plot(C,A)
plot!(C,B)
Делаем расчёт корреляции между двумя сигналами, предварительно подключив библиотеку статистических функций:
using Statistics
engee_cor = cor(A,B)
Вызов MATLAB-кода из Engee¶
Из Julia можно вызвать произвольную команду или функцию MATLAB, которая вернет результат.
Подключим интерфейс MATLAB:
using MATLAB
Загрузка данных сигналов из Engee в ядро MATLAB:
D = hcat(A,B)
A = D[:,1];
B = D[:,2];
mat"""
A = $A;
B = $B;
R = corrcoef(A,B);
"""
Расчёт корреляции между двумя сигналами c помощью функции ядра MATLAB:
matlab_cor = mat"R; R()"
Сравнение результатов и расчёт абсолютной погрешности применения методов из MATLAB и Engee:
difference = abs(engee_cor[1,1] - matlab_cor[1,2])
println("Корреляция Engee: ", engee_cor[1,1], '\n', "Корреляция Matlab: ", matlab_cor[1,2], '\n', "Абсолютная погрешность: ", difference)
Вызов синусоиды с увеличивающейся частотой из MATLAB:
chirp = mat"chirp = dsp.Chirp('InitialFrequency', 0,'SamplesPerFrame', 500); chirp()"
plot(chirp)
Построение магического квадрата:
mat"magic(3)"
Простейшие арифметические операции:
x = range(-10.0, stop=10.0, length=50)
y = range(2.0, stop=3.0, length=50)
mat"""
$u = $x + $y
$v = $x - $y
"""
plot(u,v)
Вызов MATLAB-файлов из Engee¶
Путь до папки открытой в файловом менеджере:
mat"cd $(@__DIR__)"
Запуск m-скрипта:
mat"file"
mat"run('file.m')"
mat"""run("file.m")"""
Запуск MATLAB-функции:
mat"fun(10,9)"
x = 12;
y = 13.12;
z = mat"fun($x,$y)"
z/10
Просмотр рабочего пространства MATLAB:
mat"whos"
Очистка рабочего пространства MATLAB:
mat"clear"
mat"whos"
Вывод:¶
В данном примере было продемонстрировано использование функций MATLAB в среде Engee, их совместное использование, а также численное отличие применяемых методов.