MATLAB外部接口
- 格式:ppt
- 大小:1.53 MB
- 文档页数:109
Matlab与其他语言和软件的接口问题>******************************************************************** ****<=================================== - [返回]1).如何在Matlab中读取Excel的xls数据文件?:#FangQ(Qianqian.Fang@), 2002/6/22. BigGreen/MathTools#使用xlsread()函数,或者使用excel的ActiveX接口来进行更复杂的操作,参见:/support/solutions/data/25179.shtml=================================== - [返回]2).如何在Excel中嵌入Matlab?:#FangQ(Qianqian.Fang@), 2002/6/22.BigGreen/MathTools#如果你的Matlab安装有ExcelLink,它可以实现Excel与Matlab直接的数据交换,可以在Excel中直接调用matlab的函数,进行绘图或者数据处理。
不过如果没有安装ExcelLink,你仍然可以使用Matlab的ActiveX接口来调用matlab,下面是一个Excel宏函数,作为例子:#BrettShoelson(bshoelson@),2001/11/01,comp.soft-sys.matlab#Sub CallMatlab()' Dimension variablesDim MatLab As ObjectDim ResultDim Invals(3, 4) As DoubleDim MImag() As DoubleDim i, j As Integer' Invoke MatlabSet MatLab = CreateObject("Matlab.Application")' Read Invals from current spreadsheet' (Assume Invals stored in B3:E5)For i = 0 To 2For j = 0 To 3Invals(i, j) = ActiveSheet.Range(Cells(i+3,j+2),Cells(i+3,j+2)).ValueNext jNext i' Send Invals to MatlabCall MatLab.PutFullMatrix("a", "base", Invals, MImag)' Send instructions to MatlabResult = MatLab.Execute("b=a.^2;")' Retrieve ResultCall MatLab.GetFullMatrix("b", "base", Invals, MImag)' Store Result in B8:E10ActiveSheet.Range("B8:E10").Value = InvalsEnd Sub=================================== - [返回]3).mcc,mex,mbuild都是作什么用的?:#FangQ(Qianqian.Fang@), 2002/6/22.BigGreen/MathTools#这个问题我一直都不是很清楚,看过compiler的PDF帮助之后,知道个大概,也不知道说得对不对:mcc(生成c/cpp文件)-----m--mex------ mex/dll|---x--mbuild-----C/C++ compiler----独立执行的程序mex文件是一种编译后的动态连接文件,需要在matlab中执行,优点是执行速度比m文件快,而且如果你不想提供m文件源码,可以使用编译后的mex/dll文件。
OPNET与MathWorks MatLab接口配置手册北京怡嘉行科技有限公司北京怡嘉行科技有限公司 版权所有北京怡嘉行科技有限公司 版权所有2 OPNET 与MALAB 接口模块实现原理接口模块实现原理为使OPNET 和MATLAB 实现互通,需要使用MATLAB 提供的外部接口(mx interface),其目的是能够允许C 语言编写的程序调用在MATLAB 中编写的函数库。
如图2.4.1所示。
图2.4.1 OPNET 与MA TLAB 接口示意图在OPNET 仿真开始后,MATLAB 仿真同时被调用。
同时,提供给OPNET 仿真系统相应内存空间的指针,可以将MATLAB 的命令发送给MATLAB 引擎。
只要在Process Model 头文件处声明该指针,这个MATLAB 引擎指针就能在不同的进程模型中共享。
使用特定的函数,可以在OPNET 与MATLAB 之间传递变量值,实现两者的协同仿真。
配置步骤配置步骤For interfacing OPNET and MATLAB, use the MX interface provided by MATLAB, which allows C programs to call functions developed in MATLAB. For calling MATLAB functions you need to include following files in the bind_shobj_libs environment attribute:1. libmat.lib2. libeng.lib3. libmex.lib4. libmx.libAfter including the necessary files into the include path, the MATLAB engine is started by OPNET simulation at the beginning of the simulation by using the function engOpen(). This provides the OPNET simulation with a pointer to a memory location that can be used to pass MATLAB commands to the MATLAB engine. The engine pointer can be shared among different processes by declaring the engine pointer in a header file common to all process models.Variables can be exchanged between OPNET and MATLAB using functions engPutArray() and engGetArray().Please refer to FAQ 1213 to read more about OPNET's co-simulation API and to find all the necessary references for interfacing an external simulator.。
Matlab7.0.4 接口连接说明。
PSCAD使用的4.2.1教育版,网络版。
对于大小写的要求,对于系统的变量需要正常的大小写。
用户自定义的不需要注意。
切记:每个有MA TLAB的工程都需要设置一下链接,那个勾一定要勾上啊,害了我几天。
否则会报错的。
如下:不勾就会报错:下面的两个设置是一次设置就可以保存的。
1.设置fortran编译器,不能使用GUN编译器,因为它只能用在fortran77中,我用的下面的版本。
VF6.6专业版。
在PSCAD中如下设置:2.设置MA TLAB,对于7.0.4已经可以正常运行。
3.PSCAD系统设置完成后,就可以建case了,开始加模块了。
下面是我做的一个简单测试模块。
单输入单输出。
已成功运行。
testmat1.m :文件如下:function [I1]=testIO(in1)I1=in1;模块的制作如下:首先建立一个模块,这个就自己建了。
上面的三个参数是可以自己改的,第一个参数是m函数的文件名。
第二个参数是相对路径,即m函数所在的文件夹名,建议仿系统示例目录形式。
第三个参数是不一定需要的。
前面两个参数主要是用于调用m函数,表示路径和文件名。
下面是编写的脚本文件,是在DSDYN中。
#STORAGE REAL:2#LOCAL INTEGER I_CNTSTORF(NSTORF) = $INPUTCALL MLAB_INT("%:Dir\$Path", "$Name", "R" , "R")$OUTPUT = STORF(NSTORF+1)NSTORF = NSTORF + 2联合数组多输入多输出:首先建立一个INPUT,一个OUTPUT,可以是多维的,下面是一个2维输入输出。
注意,这里只有一个变量,使用数组表示,此数组下标是从1开始的。
在m文件中也是使用数组。
在main中使用数据组合和分离器。
第十二章应用程序接口API前面章节主要叙述MATLAB自身的各种功能和使用方法。
作为优秀软件,MATLAB 不仅自身功能强大、环境友善、能十分有效地处理各种科学和工程问题,而且具有极好的开放性。
这开放性表现在两方面:一,MATLAB适应各科学、专业研究的需要,提供了各种专业性的工具包;二,MATLAB为实现与外部应用程序的“无缝”结合,提供了专门的应用程序接口API。
遵循本书“淡化专业,面向通用”的宗旨,本章将集中阐述MATLAB 的应用程序接口。
本章分五节,各节内容简述如下。
第12.1节集中介绍:如何编写C MEX源码程序,也就是如何为现有的C程序编写接口程序,使之成为MATLAB函数文件;运用这种技术,读者可以把积累的优秀C程序改造成可在MATLAB中方便调用的指令。
第12.2节用于演示:如何编写产生MAT数据文件的C源码程序。
读者通过算例入门,就不难借助MAT文件实现MATLAB与外部应用程序的数据交换。
第12.3节围绕MATLAB引擎技术展开。
借助这种技术,前台可以是各种外部应用程序编写的界面,而后台计算则可完全交由MATLAB进行。
第12.4节用三个算例来说明如何应用ActiveX实现MATLAB与外部应用程序的通信。
在第一个算例中,MATLAB用作为客户,服务器是Excel。
在后两个算例中,服务器是MATLAB,而客户是PowerPoint。
由此产生的PPT文件,可以在放映过程中,实时地进行MATLAB调用。
第12.5节的内容是:如何借助DDE技术在MATLAB与其他外部程序间进行通信。
该节的一个算例演示:VB制作的界面如何借助DDE建立的对话通道调用服务器MATLAB 进行计算和显示结果图形。
而另一个算例则演示:MATLAB如何以客户身份与服务器Excel建立DDE“热连接”,使MATLAB图形实时地跟随电子表格数据的改变而变化。
值得指出:MATLAB6.0, 6.1版用于API的(MEX、MAT、及引擎)库函数许多已经被废止。