在 Engee 环境中使用 MATLAB 代码¶
本例演示了如何在Engee中调用MATLAB函数,以及如何应用这些函数并将其与环境函数进行比较。
在 Engee 中构建曲线:¶
连接后台--一种显示图形的方法:
In [ ]:
Pkg.add(["Statistics"])
In [ ]:
using Plots
生成两个信号
In [ ]:
A = sin.(range(0, 2pi, length=100)')' # синусоида
B = @. sin(A) + 0.1 * randn() # зашумлённая синусоида
C = 1:1:100;
在图表上显示两个信号
In [ ]:
plot(C,A)
plot!(C,B)
Out[0]:
首先连接统计函数库,计算两个信号之间的相关性:
In [ ]:
using Statistics
engee_cor = cor(A,B)
Out[0]:
从 Engee 调用 MATLAB 代码¶
您可以从Julia调用任意MATLAB命令或函数,并返回结果。
让我们连接MATLAB接口:
In [ ]:
using MATLAB
将信号数据从Engee载入MATLAB内核:
In [ ]:
D = hcat(A,B)
A = D[:,1];
B = D[:,2];
mat"""
A = $A;
B = $B;
R = corrcoef(A,B);
"""
使用MATLAB核函数计算两个信号之间的相关性:
In [ ]:
matlab_cor = mat"R; R()"
Out[0]:
比较MATLAB和Engee方法的结果并计算绝对误差:
In [ ]:
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调用频率递增的正弦波:
In [ ]:
chirp = mat"chirp = dsp.Chirp('InitialFrequency', 0,'SamplesPerFrame', 500); chirp()"
plot(chirp)
Out[0]:
构建魔方
In [ ]:
mat"magic(3)"
Out[0]:
最简单的算术运算
In [ ]:
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)
Out[0]:
从 Engee 调用 MATLAB 文件¶
在文件管理器中打开的文件夹路径:
In [ ]:
mat"cd $(@__DIR__)"
运行 m 脚本:
In [ ]:
mat"file"
In [ ]:
mat"run('file.m')"
In [ ]:
mat"""run("file.m")"""
运行MATLAB函数:
In [ ]:
mat"fun(10,9)"
Out[0]:
In [ ]:
x = 12;
y = 13.12;
z = mat"fun($x,$y)"
z/10
Out[0]:
查看 MATLAB 工作区:
In [ ]:
mat"whos"
清除MATLAB工作区:
In [ ]:
mat"clear"
mat"whos"
输出:¶
本例演示了在Engee环境中使用MATLAB函数、它们的组合使用以及所用方法之间的数值差异。