繁体   English   中英

从Fortran调用Matlab

[英]Calling Matlab from Fortran

我正在尝试使用CodeBlocks作为我的IDE和GNU Fortran编译器作为我的编译器运行fengdemo.f。 它运行在include罚款中,但是无法建立对matlab引擎的任何方法调用

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|51|undefined reference to `engopen_'|

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|58|undefined reference to `mxcreatedoublematrix730_'|

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|59|undefined reference to `mxgetpr_'|

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|59|undefined reference to `mxcopyreal8toptr730_'|

C:\Program Files\MATLAB\R2012b\extern\examples\eng_mat\fengdemo.F|64|undefined reference to `engputvariable_'|

等等...

我尝试在线搜索,但在MathWorks或其他任何地方都找不到真正有用的信息。 我还获得了c ++引擎演示,因此我的path变量和其他类似内容是正确的。

我根本不习惯使用Fortran,因此不胜感激。

PS。 fengdemo.f在extern / examples / eng_mat下,因此我没有发布任何代码。

问题:没有VFC,甚至可能吗? 如果可以的话,有人可以指出正确的方向吗?

您也可以“手动”执行某些操作。 在Fortran中,可以使用“系统”子例程来运行系统命令。 例如,如果您在Linux环境中,并且在Fortran代码中,请包含以下命令:

call system("firefox http://stackoverflow.com/")

fortran程序将打开一个Firefox选项卡/窗口,进入StackOverflow。

在阅读时,您也可以从终端使用MATLAB(我没有安装它)。 例如,您可以调用以下命令来生成图形。

matlab -nosplash -nodesktop -r "ezplot('x')" 

因此,您可以创建一个matlab函数并通过fortran调用它。 Walter Roberson在MATLAB Answers上写道,您可以使用:

matlab -r 'myfunction(argument1,argument2)';

或更安全:

matlab -r 'try myfunction(argument1,argument2); catch; end; quit'

您还可以使用Fortran创建输入文件,并在MATLAB中使用它。 这不是自动解决方案,但不需要特殊的编译器。 但这取决于平台。

如果您使用Windows,则MATLAB支持的唯一Fortran编译器是Intel Visual Fortran Composer。 GNU Fortran仅在Linux或Mac上受支持。

http://www.mathworks.co.uk/support/compilers/R2013a/index.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM