当前位置: 首页 > 图文教程 > 开发语言 > VC++ > 精通VC与Matlab联合编程(六)

VC++
在类VC的界面实现中加入目录树
软件换肤技术在 BCB 中的实现
利用非模窗口生成MDI介面
报表输出轻松搞定
Windows 中不规则窗体的编程实现
解说Win32的窗口子类化
使用测试优先方法开发用户界面
一个简单的登录对话框的实现
一个简单的日记本程序
从资源中加载皮肤
一个在RichEdit中添加表情图象的类
ActiveSkin 4.3 软件换肤在VC中的实现
一种另类“关于(About)”对话框的动态显示方法
对话框打印预览及打印
关于如何换肤、子类化的解决方案
制作 MSN、QQ 的消息提示窗口
如何对 BCGControlBarPro 进行换肤
定制个性化的对话框窗口类
改变窗口中的光标形状
更新MFC中的视图,跟踪.NET Framework中的事件

VC++ 中的 精通VC与Matlab联合编程(六)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 73 ::
收藏到网摘: n/a

精通VC与Matlab联合编程(六)

作者:邓科

下载源代码

浅析VC与MATLAB联合编程<一>
浅析VC与MATLAB联合编程<二>
浅析VC与MATLAB联合编程<三>
浅析VC与MATLAB联合编程<四>
浅析VC与MATLAB联合编程<五>

  Matlab C\C++函数库是Matlab扩展功能重要的组成部分,包含了大量的用C\C++语言重新编写的Matlab函数,主要包括初等数学函数、线形代数函数、矩阵操作函数、数值计算函数、特殊数学函数、多项式函数、插值函数等,用户可以在自己的C\C++程序中调用这些函数,实现复杂的矩阵计算功能,从而减少程序设计工作量,需要说明的是C函数库和C++函数库是两个不同的函数库。
在使用前需要进行安装:
在Matlab命令窗口中输入:
mbuild -setup
按照提示选择VC的编译器,完成后在Matlab命令窗口中输入:
mex -setup
同样选择VC的编译器,就完成编译器的安装和配置。
首先介绍下C函数库,C数学函数库所需要的库函数在该目录下:Matlab根目录:\extern\lib
下面来看matlab自带的一个使用C函数库的例子(所有使用c函数例子在:matlab根目录\extern\examples\cmath):

 * ex1.c * * Copyright (c) 1995-1999 by The Mathworks, Inc. All Rights Reserved. */ /* $Revision: 1.6 $ */ #include <stdio.h>#include <stdlib.h> /* used for EXIT_SUCCESS */#include <string.h>#include "matlab.h"/*matlab.h为C数学函数库的头文件static double real_data[] = { 1, 2, 3, 4, 5, 6 };static double cplx_data[] = { 7, 8, 9, 10, 11, 12 };int main(){ /* 声明两个mxArray矩阵变量并赋初值为NULL */ mxArray *mat0 = NULL; mxArray *mat1 = NULL; /* 使用自动内存管理*/ mlfEnterNewContext(0, 0); /* 创建矩阵mat0,mat1并赋值 */ mlfAssign(&mat0, mlfDoubleMatrix(2, 3, real_data, NULL));/*该矩阵为2*3矩阵 mlfAssign(&mat1, mlfDoubleMatrix(3, 2, real_data, cplx_data));/*该矩阵为2*3矩阵,并为复数矩阵 /* 打印矩阵 */ mlfPrintMatrix(mat0); mlfPrintMatrix(mat1); /* 释放矩阵所占的内存*/ mxDestroyArray(mat0); mxDestroyArray(mat1); /* 禁用自动内存管理*/ mlfRestorePreviousContext(0, 0); return(EXIT_SUCCESS);}
三、如果有图像,请在图像文件中表明图像索引编号,如“myappimg1.gif”,“myappimg2.gif”等,在图像显示的下方注明图像描述:


图一 程序运行结果

下面在VC中实现该程序的功能,步骤如下:
1、在VC中打开ex1.c文件(该文件在该目录下:matlab根目录\extern\examples\cmath)
2、设置头文件和库文件路径:工具->选择,目录
在inlude选项中添加如下路径:
D:\matlab\extern\include\cpp
D:\matlab\extern\include
结果如图2:


图二 头文件路径设置

在Library选项中添加如下路径:如图三D:\matlab\extern\lib\win32\microsoft\msvc60D:\matlab\extern\libD:\matlab\bin

图三 库文件路径设置

3、添加库文件:工程->设置->Link在General选项中的“对象库/模块”中将目录D:\matlab\extern\lib\win32\microsoft\msvc60目录下的所有库文件名写上:如图四


图四 库文件添加

  所有设置完成后就可以运行了。Matlab内建函数库包括Matlab C数学函数中最基本的数学函数,任何使用C数学函数库编写的应用程序必须使用Matlab内建函数。Matlab M文件函数库包含了从M文件转换来的函数,这些函数相比内建函数其内容更加丰富,并且包含了大量特殊功能函数在Matlab C函数库中,Matlab阵列被声明为mxArray的结构体,该结构体的定义在目录Matlab\extern\include\matrix.h文件中,很好的理解mxArray结构体有助于使用Matlab C数学库。
Matlab C内建数学库常用的函数有:通用功能函数;运算符和特殊矩阵;基本的矩阵操作函数初等数学函数线形代数函数数据分析和傅立叶转换函数字符串函数文件输入输出函数常用数据类型函数Matlab M文件函数库运算和特殊功能功能函数基本的矩阵