0

我正在尝试使用 CodeBlocks 作为我的 IDE 和 GNU Fortran 编译器作为我的编译器来运行 fengdemo.f。它运行良好,但无法构建对 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_'|

ETC...

我试图在网上搜索,但在 Mathworks 或其他任何地方都找不到任何有用的信息。我还让 c++ 引擎演示工作,所以我的路径变量和其他类似的东西是正确的。

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

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

问题:没有 VFC 甚至可能吗?如果是这样,有人能指出我正确的方向吗?

4

2 回答 2

1

你也可以“手工”做一些事情。在 Fortran 中,您可以使用“系统”子例程来运行系统命令。例如,如果您在 Linux 环境中并且在 Fortran 代码中,则包含命令

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

fortran 程序将打开一个到 StackOverflow 的 firefox 选项卡/窗口。

您也可以在我阅读时从终端使用 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 中使用它。这不是一个自动解决方案,但它不需要特殊的编译器。但它取决于平台。

于 2013-04-07T13:45:13.223 回答
0

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

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

于 2013-03-19T13:18:29.133 回答