julia matlab的交互

首先需要安装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 个赞

emmm, 标题 jiulia => julia

请问MatFile(Ptr{Nothing} @0x000000001db0aad0, “D:/a.mat”)是什么意思?

另外,MATLAB现在的安装一般都没有设置环境变量,所以我刚刚在using MATLAB时,报错说需要指定MATLAB的环境变量,这个MATLAB_HOME设定完后发现依旧没有用。%E6%8D%95%E8%8E%B7
请问是哪里出错了?

不应该有bin,你试试

这个是输出。以 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")

好的,我试试看怎么样

哈哈,我知道了,我再试试看那个环境变量

%E6%8D%95%E8%8E%B7
成功了,谢谢了,环境变量不用加bin,再注册下就OK了

https://docs.julialang.org/en/v1.0.0/manual/noteworthy-differences/
Julia和别的语言的不同,重点说的是matlab

https://cheatsheets.quantecon.org/#creating-vectors
这个是Matlab和python还有Julia的用法区别,感觉Julia是更综合的


这是什么呀,求助:sweat_smile:
是文件找不到吗?

设置了环境变量 MATLAB_HOME 吗?

设置过了环境变量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

大佬,额我不懂Shift + 右键的 cmd。。。。:joy:

就 命令提示符/cmd 就行,

是快捷键

%E5%9B%BE%E7%89%87