/ MATLAB

MATLAB 与 FORTRAN 语言的混合编译

本文于 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”文件。所有的源代码均已上传至服务器,点此下载(实验室内部链接)。希望能对大家的研究有所帮助。

Yin Guobing

Yin Guobing

BOE技术研发工程师🔬,业余码农😳,蓝猫铲屎官🐈。曾独立开发了一款iOS APP并上线🎉。现居北京,正在为了理想中的生活而奋斗..

Read More