Matlab与VC++、Oracle数据库接口技术研究及实现
- 格式:pdf
- 大小:2.13 MB
- 文档页数:4
如何在VC 程序中使用MA TLAB 的C 数学库刘春艳(南京船舶雷达研究所,江苏南京210003)摘 要:介绍了如何在VC 程序中利用MA TLAB C 数学库来实现复杂的数学计算,通过一个简单的例子说明了数学库中函数的调用方法和环境参数的设置。
关键词:VC ++;MA TLAB C 数学库中图分类号:TP39 文献标识码:A 文章编号:100920401(2002)022*******How to Use the MA TLAB C Math Library in VC ++L IU Chun 2yan(N anji ng M ari ne Radar Instit ute ,N anji ng 210003,Chi na )Abstract :How to use MA TLAB C Math Library to accomplish the complex mathematical opera 2tion is introduced in this paper ,showing a way that how to call the routines of MA TLAB C Math Library and set parameters in VC ++ 6.0by a simple example.K ey w ords :V ++;MA TLAB C Math Library1 引 言VC ++的强大功能得到了众多编程者的青睐,但在编写一些工程计算程序时,如信号处理中的快速傅利叶变换(FF T )等就需要比较复杂的算法,编写得不好,执行效率会比较低,影响程序的运行速度。
MA TLAB 语言是一种高级矩阵语言,它在工程计算方面具有无可比拟的优异性能,一些复杂的运算有直接的函数可以调用,如fft 。
如何将二者的优点结合,在VC ++中使用MA TLAB 的函数实现一些复杂的运算,MA TLAB C 数学库(MA TLAB C Math Li 2bray )提供了这个接口。
邮局订阅号:82-946360元/年技术创新软件时空《PLC 技术应用200例》您的论文得到两院院士关注Matlab 与VC 通用接口程序的实现General Interface Device Between Matlab and VC(华侨大学)彭长青尚荣艳PENG Chang-qing SHANG Rong-yan摘要:Matlab 编程效率极高,但执行效率非常低;Visual C 开发功能强大,执行速度快,但编程繁琐。
Matcom 可以实现Matlab 和VC 的完美结合。
本文探讨了基于Matcom4.5的VC 与Matlab 接口程序的实现问题,从建立文档方式和建立文本框方式两种角度,详细介绍了将CPP 代码插入VC 的框架,即建立Matlab 和VC 的通用接口程序的方法。
该方法实现了Matlab 与VC 程序的混合编制,具有一定的实用价值。
关键词:Matlab ;VC ;Matcom4.5;接口程序中图分类号:TP311.1文献标识码AAbstract:Matlab programming is extremely efficient,but its execution efficiency is very low.Visual C can develop powerfully and ex -ecute fast,but its programming is very tedious.Matcom can achieve the perfect combination of Matlab and VC.The paper empha -sizes the realization of the interface program between Matlab and VC based on Matcom4.5.The framework to insert CPP code into VC is introduced in detail by establishing a document and establishing a text toolbar,which is the method to establish a general in -terface device between Matlab and VC.The method achieves the mixed programming technology for Matlab and VC and has certain value in practice.Key words:Matlab;VC;Matcom4.5;Interface Device文章编号:1008-0570(2010)09-3-0105-031引言Matlab 是MathWorks 公司推出的一套功能非常强大的商业数学软件,广泛应用到信号处理、语音处理、数据采集、数值运算、图像处理、电子仿真、金融分析等工业领域。
浅析VC与matlab接口编程(一)作者:孙科除了使用MATCOM之外,matlab与vc的混合编程还有其他的几种方法:1 通过matlab engine方式。
此种方法需要在机器上安装matlab软件,而且执行效率低,因此在实际应用中不常采用这种方法,在软件开发中也不可行,比较适合个人使用或做演示用。
2 直接调用matlab的c/c++数学函数库。
vc中可以直接使用matlab提供的c/c++数学函数,此方法需要对c/c++语言非常熟悉。
3 用matlab自带的matlab compiler.此种方法有很多限制:(1)不能转换脚本m文件,只能转换m函数;(2)不能使用matlab对象;(3)不能用input或者eval操作matlab空间变量;(4)不能动态的命名变量,然后用load或者save命令来操作,不能对使用load指令装载普通文本文件的m文件操作;(5)不能处理具有嵌套调用其他m文件的m文件;(6)不能使用matlab内联函数(7)不能对使用了java接口的matlab代码文件使用4 使用matlab的combuild工具:该方法简单,通用性强,几乎可以使用matlab的任何函数,因此在程序较大,调用函数较多时使用起来效果很好,此方法也是mathworks公司推荐的使用方法;5 使用matcom工具。
相比其他方法而言,有下列优点:(1)转换过程简单,容易实现;(2)可以方便的生成dll和exe文件;(3)不仅可以转换独立的脚本文件,也可以转换嵌套的脚本文件;(4)设置环境后,可以使用matlab工具箱函数;其缺点是:(1)对struct等类的支持有缺陷;(2)部分绘图语句无法实现或得不到准确的图像,尤其是三维图像。
在不涉及到三维作图以及m文件不大的情况下,使用效果很好。
Matcom是mathTools公司推出的一个能将M文件转化成相同功能C++代码的工具。
相比Matlab自带的编译器Compiler,用Matcom转化代码要简单和方便得多。
3 2008204203收到,2008208206改回33 沈智芳,女,1974年生,讲师,研究方向:计算机科学。
文章编号:100325850(2008)1020066203V isual C ++与M AT LAB 程序的接口研究V isua l C ++and M AT LAB the Procedure I n terface Stud ies沈智芳 易从艳(咸宁职业技术学院 咸宁 437100)【摘 要】通过M A TLAB Engine ,A u tom ati on 服务器和M A TLAB 数学库和图形库三种方法分别实现在V isual C ++中调用M A TLAB 程序,并比较了它们各自的优缺点。
在实例中,运用M A TLAB Engine 方法做成一个动态链接库,满足了封装性的要求,实现了与V isual C ++的接口。
【关键词】V isual C ++,M A TLAB ,接口,动态链接库中图分类号:T P 311文献标识码:AABSTRACT T he m athem atics w arehouse and th ree k inds artw o rk w arehouse m ethod have called the M A TLAB p rogram by M A TLAB Engine ,A utom ati on sever and M A TLAB in com ing true respectively in C ++,and have comp red their respectiveexcellent sho rtcom ing is in examp le m iddle the m ethod w ieding M A TLAB Engine m akes up into one developm ent caenate w arehouse ,H ave satisfied the request packagine nature ,have realized the interface w ith visual C ++.KEYWOR D S V ISUAL C ++,M A TLAB ,interface ,developm ent catenate w arehouse M A TLAB 是M ath W o rk s 公司开发的著名数值计算、系统分析与仿真工具,含有500多个数学函数,可以进行数值计算、系统分析和模拟仿真,而且编程简洁、结构完整、可移植性强。
收稿日期:2003-03-20。
刘廷瑞,硕士生,主研领域:光学测量技术。
基于Matcom415的VC ++与Matlab 通用接口程序编制刘廷瑞 于瀛洁 陈明仪(上海大学精密机械系 上海200072)摘 要 本文着重探讨基于Matcom4.5的VC ++与Matlab 接口程序的实现问题,该问题虽然已有一些相关文献资料,但都必须插入不同的相关连接代码。
本文实现了统一的规范,使VC ++与Matlab 接口程序的编制成为一种机械的通用程序,不需要嵌入另外的代码,即使不懂VC ++也能实现程序的编制。
关键词 Matlab VC ++610 Matcom4.5GENERAL INTERFACE DEVICE BETWEEN VC ++AN D MAT LAB BASE D ON MATCOM4.5Liu T ingrui Y u Y ingjie Chen Mingyi(Department o f Precision Mechanics ,Shanghai University ,Shanghai 200072)Abstract The paper emphasizes the realization of the interface program between Matlab andVC ++6.0based on Matcom4.5,although the issue has already been discussed in past literature ,it must be inserted correlation codes respectively.The paper realizes uniform standardization ,making in 2terface program be a general format ,it doesn πt need additional codes for even ignorance of VC ++1K eyw ords Matlab VC ++6.0 Matchom4.51 前 言VC ++610与Matlab 接口程序的实现有多种方法。
6科技资讯科技资讯S I N &T NOLOGY I NFORM TI ON2008N O .01SC I ENC E &TEC HN OLO GY I NFO RM ATI O NI T 技术M AT LAB 是M a t h W or ks 公司推出的一套功能非常强大的商业数学软件,从信号处理、语音处理、数据采集、数值运算、图像处理、到电子仿真、金融分析等等,几乎在各个工业领域,他都已经得到了广泛应用,同时也取得了巨大的成功。
M AT LAB 是一种编程效率极高的编程语言,解决同样的数值计算问题,使用M ATL AB 要比使用BASI C,F ORT RAN,C 等语言编程效率要高几倍[1]。
但是,由于M ATL AB 是用一种脚本语言,他的解释是逐行执行的,程序中所有的变量都是用M xAr r a y 来实现的,所以为了保证通用性,它的执行效率非常低,这就是我们常常看到的:在开发一些复杂的算法时,通常会发现程序执行得特别慢,虽然M a t hwor ks 公司已经在竭力提高m 脚本文件(scr i pt f i l es)的运算速度,但目前为止效果仍然不能和实现同样功能的可执行程序相比。
而且m 脚本文件是不能脱离M AT LAB 这个应用程序环境,这就大大制约了程序的可移植性和通用性[2]。
同时,由于M ATL AB 的m 文件是ASC Ⅱ文件,任何人都可以打开显示代码并对其进行修改,不利于隐藏算法和保护开发者的劳动成果。
V i sua l C ++自从诞生以来一直就是W i n-dows 环境下开发应用软件的主流平台,因为Vi s ua l C++与W i ndows 操作系统同出自M i cr osof t 公司,它具有得天独厚的优势。
V i -s ua l C++集成了功能强大的编辑器、编译器、链接器、调试器、A ppW i zar d ,C l ass W i zar d,AppSt udi o 等多种多样的可视化编程工具,可以很容易的实现菜单、工具条等,具有很强大的图形界面编程能力,用它写出来的界面友好、而且最后可以生成脱离V i sual C++环境而独立运行的应用程序。
vc调用matlab函数2008-12-24 10:20Matlab 是由Math Works 公司于1984 年推出的数值计算及图形处理软件,可以实现数值分析、优化、统计、偏微分方程数值解、自动控制、信号处理、图像处理等若干领域的计算和图形显示功能。
其中,控制系统工具箱的集成为设计和分析各种复杂的控制系统提供了有效的方法和途径。
但是,由于Matlab开发平台的局限性,在其上面开发的程序不能脱离Matlab 运行环境,因而在处理一些实际应用问题时显得灵活性不足,而VC++则在一定程度上能够弥补这一漏洞,因此,现将二者结合共用,各献其长,可以为科研工作和工程开发提供了更为强大的技术支持。
1、Matlab与VC混合编程的实现方法Matlab作为控制系统设计的一种通用工具,它可以和VC方便的进行连接。
一般而言,Matlab与VC混合编程的实现方法主要有以下三种方法:(1)通过引擎(Engine),采用客户机服务器的计算模式,通过Window的ActiveX通道和Matlab进行连接。
具体应用时,往往在VC中设计程序框架,以编译的程序作为前端客户机;通过调用Matlab引擎在后台实现与服务器的连接,实现动态通信(2)应用Matlab数学函数库,Matlab中包含了内容丰富的函数库,而且还提供了与VC的数学函数接口,用户可以方便的在VC的IDE(集成开发环境)中调用。
(3)通过DLL实现VC与Matlab的混合编程。
DLL是一个可执行的二进制文件。
把很多通用的功能放在DLL中,可以供多个应用程序调用,这样可以很好的减少外部存储空间的占有量,并实现代码的共享[2]。
在上述三种方法中,第一种方法对调用Matlab的工具箱很实用,所有在进行控制系统的设计和分析时,一般都是通过调用Matlab引擎(Engine)来实现的。
本文主要介绍采用通过引擎(Engine)来实现VC与Matlab的混合编程。
2、MATLAB引擎简介Matlab引擎是Matlab提供的一系列程序的结合,它允许用户在自己的应用程序中对Matlab进行调用,将Matlab作为一个操作引擎使用,使其在后台运行。
第26卷第2期 计算机应用与软件Vol 126No .22009年2月 Computer App licati ons and Soft w are Feb .2009基于COM 组件的M a tlab7.x 与VC ++6.0接口技术及实际应用李 芳 徐 丽(长安大学信息工程学院 陕西西安710064)收稿日期:2007-08-22。
李芳,讲师,主研领域:数据库应用技术,人机交互技术,操作系统应用技术。
摘 要 介绍了MAT LAB7.x 与VC ++6.0四种接口方法,分析比较了各种方法的优缺点。
在此基础上,着重研究了基于COM 组件的接口技术,详细阐述了利用C OM 组件进行接口的配置、步骤和方法。
使用此接口技术,完成了某数值仿真平台的实例开发,较好地实现了M atlab7.x 强大的计算功能与VC ++6.0卓越的可视化功能的高效结合,大大提高了数值仿真软件的开发效率。
关键词 MAT LAB VC ++6.0 C OM 接口O N TECHNOLO GY O F I NTERFACE BET W EEN M AL TAB7.X AND VC ++6.0BASEDO N COM AND I TS ACTUAL APPL ICAT IO NL i Fang Xu L i(School of Infor m ation,Chang ’an U niversity,X i ’an 710064,Shaanxi,China )Abstract Four methods for the interface bet w een MAT LAB7.x and VC ++6.0are intr oduced,and their advantages and disadvantages are analyzed .The interface technol ogy based on COM is studied s pecially,and the app r oaches of configurati on and p r ocedures f or this interface are p resented in detail .Certain nu merical si m ulati on s oft w are is devel oped with this interface technol ogy .The research results show that the power 2ful calculati on ability ofMAT LAB7.x and excellent visual functi on of VC ++6.0can be perfectly combined t o devel op efficiently the si m ula 2ti on s oft w are with this interface technol ogy .Keywords MAT LAB VC ++6.0 COM I nterface0 引 言M atlab 是美国Math works 公司开发和发行的一个软件产品。