MATLAB如何调用FORTRAN语言

MATLAB如何调用FORTRAN语言,第1张

首先需要保存MATLAB代码在fortran同一目袜薯录下

这里命名成test.m

内容如下:

[color=008000]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[/color]

[color=FF0000]clear allclose allclc

M=load('matrix M.txt')

eigvalues=eig(M)

plot(real(eigvalues),imag(eigvalues),'-r*')

title('简好祥矩阵M的特征值')

xlabel('特征值实数部分')

ylabel('特征值虚数部分')[/color]

[color=008000]%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%[/color]

!fortran代码如下:

[color=0000FF]program main

implicit none

integer,parameter :: rows=100, cols=100

real*8 :: M(rows,cols)

integer :: i

call random_seed()

call random_number(M)

open(100,file='matrix M.txt')

write(100,'拦搏(<cols>E25.15)') transpose(M)

close(100)

call system("matlab -r test")

end program main[/color]

直接运行fortran代码就可以了。

matlab不用事先打开。

vs2005+ivf10.1+matlab7.8.0 测试通过

试一试!

首先在matlab里新建一个产生figure的m文件hFig.m:function hFig()

figure('NumberTitle','off','MenuBar','none','ToolBar','none','Name','fig')

axis([0 1 0 1])

(1)设定matlab环境: mex –setupmbuild –setup

(2)将m文件编译生成.dll .lib .h

mcc –B cpplib:libhFig hFig.m

(如果m文件中含有eval函数,则该eval函数中调用的函数(假设为evalfun)必须提前声明强制关联, 即在主函数体最开始处添加 %# evalfun)

(支持向量分类机需添加:%#function code_OneVsOne

%#function crossvalidatelssvm

%#function misclass

%#function code

%#function codedist_hamming

支持向量回归机需添加:%#function leaveoneoutlssvm

%#function mse

%#function gridsearch

%#function code

%#function codedist_hamming)

(3)设定VS2008环境:工具-选项-项目和解决方案-VC++目录

添加包含文件路径:。。。matlab\extern\include

添加库文件路径:。。。matlab\extern\lib

链接器-输入-附加依赖项:mclmcrrt.lib libhFig.lib

链接器-常规-附加库目录:。。。matlab\extern\lib\win32\microsoft

(VS2010:VC++目录在项目-属性-配置属性里)

(4)将生成的腊销.lib .dll .h文件拷贝到轮闭游MFC工程源文件目录,并将.h文件添加进解决方案

在源代码里添加:#include "libhFig.h"

对MCR及生成的库进行初始化

在CMyView::OnInitUpdate()里添加

if (!mclInitializeApplication(NULL,0))

{

AfxMessageBox(_T("Initialize Error!"))

return

}

libhFigInitialize()

(5)态型 在需要处调用hFig.m函数(尽量使用try应付突发异常)

try

{

hFig()

}

catch (const mwException&erro)

{

CString str

str = erro.what()

AfxMessageBox(str,NULL,NULL)

}

(6) 退出时释放调用的库

重写DestroyWindow(),添加

libhFigTerminate()

mclTerminateApplication()

怎么调用matlab中已经编好的函数或程序

举个例子亏指吧 一段程碰空世序在M文件

保存笑肢为fun.m 放在当前目录下面

function y=fun(x,a)

y=x.^2+a*x

-----

在命令窗口输入

fun(2,1)%就可以进行计算2^2+1*2


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12448664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-25
下一篇 2023-05-25

发表评论

登录后才能评论

评论列表(0条)

保存