首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >从Fortran调用Matlab

从Fortran调用Matlab
EN

Stack Overflow用户
提问于 2013-03-19 19:46:58
回答 2查看 1.5K关注 0票数 0

我正在尝试使用CodeBlocks作为我的集成开发环境,GNU Fortran compiler作为我的编译器来运行fengdemo.f。它运行include fine,但它无法构建对matlab引擎的任何方法调用

代码语言:javascript
运行
复制
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,这是可能的吗?如果是这样的话,有人能给我指个方向吗?

EN

Stack Overflow用户

发布于 2013-04-07 21:45:13

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

代码语言:javascript
运行
复制
call system("firefox http://stackoverflow.com/")

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

你也可以从终端使用MATLAB,因为我读到了(我还没有安装)。例如,您可以调用下面的命令来生成图形。

代码语言:javascript
运行
复制
matlab -nosplash -nodesktop -r "ezplot('x')" 

因此,您可以创建一个matlab函数并通过fortran调用它。沃尔特·罗伯逊在MATLAB Answers上写道,你可以使用:

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

或更安全:

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

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

票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15498651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档