收藏 分销(赏)

MATLAB与C++对接.doc

上传人:xrp****65 文档编号:6529765 上传时间:2024-12-11 格式:DOC 页数:9 大小:197.50KB 下载积分:10 金币
下载 相关 举报
MATLAB与C++对接.doc_第1页
第1页 / 共9页
MATLAB与C++对接.doc_第2页
第2页 / 共9页


点击查看更多>>
资源描述
浅析VC与matlab接口编程(一) 作者:邓科 下载源代码   Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便 得多。本文将结合作者编程经验,以VC6.0和Matcom为例,详细介绍如何利用Matcom进行VC与Matlab的联合编程。   Matcom安装安装Matcom前要已求安装VC6.0。在安装过程中出现选择编译器对话框,选择“是”(图一)。出现选择是否安装Matlab时,选“否”。其他选项采用默认设置。Matcom可以独立于Matlab运行,但需要外部的C++编译器,指定Matlab的位置是为了让编译文件中需要的一些系统函数找到路径用的。                图一   安装完成后,启动界面MIDEVA(图二)。MIDEVA集成开发环境包括命令行窗口、变量列表窗口、命令列表窗口和编译链接信息窗口等几部分,并有详细的帮助文档。 图二 Matcom命令输入方法与Matlab相同。如果安装在中文版操作系统时,输入命令前加一空格。(如图三)。                   图三 下面详细介绍如何将m文件编译后放入VC中。 1、启动MIDEVA ,File->New,新建如下Test1.m文件: x=1:0.1:10; y=sin(x); plot(x,y); 将文件保存(如图四)。     图四 m文件保存的默认位置为:matcom安装目录\matcom45,生成的C++文件保存的默认位置为:matcom安装目录\matcom45\Debug\,本例matcom安装目录为C盘 即 C:\matcom45\Debug\,在该目录下将会产生Test1.h、Test1.cpp、Test1.r 、Test1.obj文件。 2、在VC中用MFC Wizard(exe)创建一个基于对话框名为Example的工程。 在面板上添加一个ID为IDC_BUTTON1按扭。 3、将C:\matcom45\Debug目录下的Test1.cpp文件的内容拷贝到 void CExamleDlg::OnButton1()下,(如图五)。              图五 4、将C:\matcom45\lib\下的matlib.h 和v4501v文件和C:\matcom45\debug下的Test1.h文件拷贝到工程Example目录下,然后在VC中将库文件和头文件加入到工程中:工程->添加工程->Files,选择刚刚拷贝到Example目录下的matlib.h 、v4501v和Test1.h文件(如图六)。           图六 5、在ExamleDlg.cpp中加入如下代码: #include "matlib.h" #include "Test1.h" 6、在void CExamleDlg::OnButton1()中分别添加一个初始化类库调用函数”initM(MATCOM_VERSION)”和一个结束类库调用函数”exitM()”(如图七)。              图七 运行程序,点击画图按扭(如图八)。                                图八   程序的release版本需要ago4501.dll、v4501v.dll、v4501.lib三个文件的支持。以上只是介绍了VC和Matcom接口编程的一个简单例子,功能并不完善,也远远达不到一个软件所要求的水平,但只要熟悉了VC和Matcom接口编程的基本原理和方法,相信大家一定能够编出优秀的软件。 如果有什么问题可以联系我。我的QQ:44760299 邮箱:c_dinco@ 让ansys与matlab协同工作2——如何使用ansys调用matlab (2007-09-27 08:56:36) 转载 标签: 知识/探索 matlab ansys 相互调用 协同工作   之前转载的帖子也说明了一种很好的交互工作的方法。我这里再说一种方法,供参考。 matlab和ansys都会等着被调用的程序结束运行之后再执行下面的命令,这个特性允许我们把程序的控制权在matlab和ansys之间相互传递,实现ansys与matlab的相互调用和交互工作。   1.matlab中调用ansys的方法(之前的帖子里贴过,不再详述了。补充一点就是ansys运行中产生的中间文件都将在调用它的matlab文件夹下,除了-o内容指定的output文件),下面是一个例子: !"D:\Program Files\Ansys Inc\v100\ANSYS\bin\intel\ansys100.exe" -b -i d:\inp\vm1.mac -o "d:\out put\1.txt" 2.ansys中调用matlab的例子: /sys,matlab /r t1;t2 其中t1.m,t2.m是我们自定义的、指定matlab启动后自动运行的脚本文件,内容分别如下: t1.m disp('test1 ok~~') t2.m disp('test2 ok~~') 运行上述命令后,matlab将启动并运行t1.m和t2.m,返回信息如下: >> t1;t2 test1 ok~~ test2 ok~~ 当然,在matlab /r 后面还可以加上matlab内置的函数,如下面的例子 /sys,matlab /r hf=figure;peaks;saveas(hf,'matlab.emf');exit 这样,matlab就会被调用来绘制一幅图形、保存起来(保存在当前的ansys文件夹)之后退出。退出后,程序的控制权又交给ansys。 有一点需要注意的是,ansys调用matlab之后,matlab脚本中一定要有exit才能将程序控制权重新交给ansys。matlab调用ansys时(batch mode)并不需要*exit,程序运行完毕后会自动退出。      iomiga老兄说的那个例子应该也可以用下面的方法考虑实现,那就是在ansys结束一步运行后,调用matlab,在matlab中完成材料属性计算等工作并保存为文件,之后退出。ansys就会继续进行下面的步骤了(如读入matlab生成的数据,并计算下一步。)
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服