首先需要安装MATLAB库和设置matlab的环境变量,然后就可以使用Julia和matlab交互了,开贴讨论julia和matlab的交互,今天贴的是julia读取matlab文件
julia> using MATLAB
julia> fname=“D:/a.mat”;
julia> mf = MatFile(fname)#打开.mat文件
MatFile(Ptr{Nothing} @0x000000001db0aad0, “D:/a.mat”)
julia> a=get_variable(mf, “a”)#读取变量
3×3 Array{Float64,2}:
0.162182 0.528533 0.262971
0.794285 0.165649 0.654079
0.311215 0.601982 0.689215
julia> close(mf)#关闭.mat文件
julia> b=get_variable(mf, “a”)#会读不出来报错,这是正常的,因为文件已经关闭
ERROR: UndefRefError: access to undefined reference
Stacktrace:
[1] unsafe_convert at C:\Users\Administrator.julia\packages\MATLAB\RMOcx\src\matfile.jl:18 [inlined]
[2] get_mvariable(::MatFile, ::String) at C:\Users\Administrator.julia\packages\MATLAB\RMOcx\src\matfile.jl:42
[3] get_variable(::MatFile, ::String) at C:\Users\Administrator.julia\packages\MATLAB\RMOcx\src\matfile.jl:49
[4] top-level scope at none:0
julia>
3 个赞
请问MatFile(Ptr{Nothing} @0x000000001db0aad0, “D:/a.mat”)是什么意思?
另外,MATLAB现在的安装一般都没有设置环境变量,所以我刚刚在using MATLAB时,报错说需要指定MATLAB的环境变量,这个MATLAB_HOME设定完后发现依旧没有用。
请问是哪里出错了?
这个是输出。以 julia>
开头的才是输入的命令。
我看库说明中提到了安装方法,你可以试试:
- To specify that a specific MATLAB installation should be used, set the environment variable
MATLAB_HOME
.
- Start a Command Prompt as an Administrator and enter
matlab /regserver
.
- From Julia run:
Pkg.add("MATLAB")
成功了,谢谢了,环境变量不用加bin,再注册下就OK了
设置过了环境变量MATLAB_HOME,把bin也去掉了。
MATLAB 2016a + julia 1.1.1 + MATLAB.jl v0.7.3
试了一下,没什么问题啊。
julia> withenv("MATLAB_HOME" => "C:/Program Files/MATLAB/R2016a/") do
fname="H:/a.mat";
mf = MatFile(fname);
get_variable(mf, :ans)
end
4×4 Array{Float64,2}:
0.814724 0.632359 0.957507 0.957167
0.905792 0.0975404 0.964889 0.485376
0.126987 0.278498 0.157613 0.80028
0.913376 0.546882 0.970593 0.141886
这个运行过没?
Start a Command Prompt as an Administrator and enter matlab /regserver
.
在julia里面输入?还是命令提示符还是matlab里面。。。。
大佬,额我不懂Shift + 右键的 cmd。。。。