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