在Engee环境中使用MATLAB代码
这个例子演示了如何在Engee中调用MATLAB函数,以及它们的应用和与环境函数的比较。
工程中的建筑曲线:
启用显示图形的后端方法:
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"
结论:
这个例子演示了MATLAB函数在Engee环境中的使用,它们的联合使用,以及所用方法之间的数值差异。


