我有以下问题:我想模拟一些控制工程系统。由于它非常复杂,我使用计算机导出一些(复杂的)方程式,这些方程式只能导出到fortran77代码。在我的开发电脑上这没问题(linux机器)。
不,我想在硬件中这样做,在这里我必须使用Windows操作系统。不幸的是,matlab不支持windows上的gfortran。因此,我无法在该框中编译fortran文件。
我的想法现在转换为C,因为C编译器可以在matlab上获得。还有其他(更好的)选择吗?
我以下列方式有几个SUBROUTINES。
SUBROUTINE sys_rhs (x, v, dx, param)
REAL*8 x(6)
C code is coming here
RETURN
END SUBROUTINE
这是一个好习惯吗?在用C编写的接口函数中使用函数sys_rhs__
是否有效?
问题是,我无法测试它,因为我没有大量访问Windows机器。所以如果我尝试它就应该工作,我不需要经常试验。
另外我在windows上需要什么?我在哪里可以得到它们?
由于 基督教
答案 0 :(得分:0)
英特尔销售了一个非常好的fortran编译器(http://software.intel.com/en-us/articles/fortran-compilers/),他们过去常常免费提供测试...; - )
PS不,我没有以任何方式与这家公司联系!
答案 1 :(得分:0)
您可能想检查gnumex项目,该项目允许使用GNU GCC编译器套件(使用MinGW或Cygwin)编译MEX文件,并能够使用g77编译Fortran程序。
答案 2 :(得分:0)
答案很简单:我的fortran代码中有一些语法错误。 gfortran
没有这样严格的语法检查,因此正确解释了fortran代码。删除拼写错误后,我用f2c代码转换。
由于
答案 3 :(得分:-1)
所有这一切都有更好的解决方案
使用你的linux机器或windows机器在c / c ++中实现该功能,然后生成一个dll文件。
在matlab中,您可以加载DLL并调用其中的函数。
这是一个简单的教程,展示了如何使用matlab调用dll。