MATLAB 与 FORTRAN 语言的混合编译
MATLAB 与 FORTRAN 语言的混合编译通过 MEX 文件来实现。
本文于 2011 年发布于实验室内部网站。FORTRAN 语言的优势是计算效率较高,并且有着大量的成熟可靠的代码可以利用。MATLAB 的优势则是方便简洁,图形化非常方便,有现成的函数与工具箱可供利用。因此,将二者联合起来可以获得效率与易用性的平衡。
MATLAB 与 FORTRAN 语言的混合编译通过 MEX 文件来实现。本程序将 FORTRAN 语言用作计算模块,使用 MATLAB 做流程控制与可视化。实现的核心在于 MATLAB 外部程序接口。
C MATLAB gateway
subroutine mexFunction(nlhs , plhs , nrhs , prhs)
C variables
integer nlhs , nrhs
integer plhs(*), prhs (*)
C input
pointers pr_x=mxgetpr(prhs (1)) pr_x1=mxgetpr(prhs (2))
C output
pointers plhs (1)= mxCreateDoubleScalar (0) pr_y=mxGetPr(plhs (1))
C calculation
call eim(%val(pr_x),%val(pr_x1),%val(pr_y))
end subroutine mexFunction
结合有效折射率与遗传算法来优化设计 PCF 的结构,得到任意波长的零色散结构参数,任意波长段的色散平坦结构参数。为了方便更改参数设计了上边的这个 GUI。批量计算可以看压缩包中的“ZDFiber.m”文件。所有的源代码均已上传至服务器,点此下载(实验室内部链接)。希望能对大家的研究有所帮助。
Comments ()