
《MATLAB编译程序和外部接口》包含两部分内容,即MATLAB的编译程序和外部接口。MATLAB的编译程序,包括调用编译程序的各种选项的意义及使用;编译一个源程序的过程及结果;一次编译和二次编译的不同命令;编译程序能够生成的软件组件;怎样将编译好的目标程序部署到另外的机器上;利用编译程序实现MATI.AB与C/C++的混合编程。
外部接口讲述MATLAB程序与C/C++、VB、Java、Fortran程序和Excel的相互调用;MATLAB与这些语言的连接是通过哪些方法实现的;服务器程序和客户程序在不同语言程序的调用中扮演什么角色;输入和输出数据的MAT文件和作为子程序的MEX文件的使用及设计等。
《MATLAB编译程序和外部接口》可以作为高等院校各工程专业的教学参考书,也可作为广大科技工作者的参考用书。
《MATLAB编译程序和外部接口》附带一张光盘,其中包含各章实例程序的源代码。
编辑推荐
《MATLAB编译程序和外部接口》是由国防工业出版社出版的。 目录
上篇 MATLAB编译程序
引言
第1章 MATLAB编译程序的有关命令、附注函数
1.1 编译程序的有关命令
1.1.1 mCC
1.1.2 buildmcr
1.1.3 mbuild
1.1.4 isdeployed
1.2 附注函数
1.2.1 %#external
1.2.2 %#function
1.3 MCC命令选项的快速参考
第2章 MTLAB编译程序生成目标程序
2.1 MATLAB编译程序可以生成的目标程序
2.1.1 封装文件
2.1.2 独立应用程序
2.1.3 库
2.1.4 MATLAB的COM和:Excel创建程序
2.2 编译程序建立程序组件的基本过程
2.2.1 编译独立的应用程序
2.2.2 编译共享库
2.2.3 生成调用共享库的独立应用程序
2.2.4 在开发程序的机器上测试组件
2.2.5 部署程序组件到别的机器
2.3 MATLAB编译程序的局限
2.3.1 编译MATLAB和工具箱的限制
2.3.2 对独立应用程序的限制
2.3.3 弥补Callback问题:丢失函数
第3章 安装与配置
3.1 系统要求
3.2 安装
3.2.1 MATIJAB编译程序的安装
3.2.2 安装ANSIC或C++编译程序
3.3 配置
3.3.Imbuild应用程序简介
3.3.2 配置ANSIC或c++编译程序
3.4 选项文件
3.4.1 寻找选项文件
3.4.2 修改选项文件
3.4.3 用rebuild-setup选择编译程序的提示
3.5 Windows中编译程序的限制
第4章 编译过程
4.1 MATI.AB编译程序技术术语
4.1.1 MATIAB组件运行时库
4.1.2 组件技术文件
4.2 编译过程
4.3 输入和输出文件
4.3.1 独立可执行程序
4.3.2 C共享库
第5章 部署过程
5.1 概述
5.1.1 生成的代码部署于不同平台
5.1.2 抽取CTF’档案而不执行组件
5.1.3 用户操纵编译路径
5.2 在部署的机器上安装MCR
5.2.1 在Windows系统中安装MCR
5.2.2 在Linux系统中安装MCR
第6章 使用mcc所涉及的种种问题
6.1 编译程序的选项
6.2 宏与捆绑文件——简化编译选项
6.2.1 宏
6.2.2 捆绑文件
6.3 使用封装文件
6.3.1 主文件封装
6.3.2 c库封装
6.3.3 c++库封装
6.3.4 三种封装文件的比较
6.3.5 cOM组件封装
6.4 使用%#external附注函数
6.5 使用%#function附注函数
6.6 脚本文件
6.6.1 转换脚本M文件为函数M文件
6.6.2 应用程序中包含的脚本文件
6.7 使用路径名
6.8 有关根目录和版本信息的命令
6.8.1 matlabroot命令
6.8.2 vet命令
第7章 独立应用程序
7.1 C/C+4-独立应用程序的目标程序
7.1.1 编译应用程序
7.1.2 测试应用程序
7.1.3 部署应用程序
7.1.4 运行应用程序
7.2 只用函数M文件写应用程序代码
7.3 混合M文件与c或c++文件的独立应用程序——C/C++与MATIAB接口之C/C++程序调用MAT[AB程序
7.3.1 简单例子
7.3.2 稍复杂例子
7.3.3 小结
第8章 从函数M文件生成共享库——C/C++与MATLAB接口之C++程序调用MATLAB程序
8.1 C共享库
8.1.1 C共享库的封装
8.1.2 C共享库例子
8.1.3 调用共享库
8.2 C++共享库
8.2.1 C+4-共享库的封装
8.2.2 C+4-共享库的例子
8.3 MATLAB编译程序生成的接口函数
8.3.1 调用共享库程序的结构
8.3.2 库初始与结束函数
8.3.3 打印与错误处理函数
8.3.4 由M文件生成的函数
8.4 独立应用程序与共享库编译上的区别
第9章 COM和Excel组件
9.1 COM和Excel的MAT[AB生成器
9.2 COM对象的目标程序
9.3 Excel Plug-In目标程序
第10章 错误和警告信息
10.1 编译时错误
10.2 警告信息
10.3 运行时错误
10.4 Depfun错误(相关性分析错误)
10.5 问题解答
10.5.1 mbuild有关的问题
10.5.2 MATLAB编译程序有关的问题
下篇 MATLAB外部接口
引言
第11章 输入和输出数据
11.1 使用MAT文件
11.1.1 输入数据到MATLAB
11.1.2 从MATLAB输出数据
11.1.3 在不同平台之间交换数据
11.1.4 读/写MAT文件
11.1.5 写字符数据
11.2 读写MAT文件的例子
11.2.1 用c建立MAT文件
11.2.2 用c读MAT文件
11.2.3 用Fortran建立MAT文件
11.2.4 用Fortran读MAT文件
11.3 编译和连接处理MAT文件的程序
11.3.1 屏蔽浮点数异常
11.3.2 在Windows系统编译和连接程序
11.3.3 需要的第三方源文件
第12章 MATLAB与通用.DLL的接口
12.1 加载和卸载库
12.1.1 加载共享库——loadlibrary函数
12.1.2 卸载库——unloadlibrary函数
12.2 获取库的有关信息
12.2.1 libfunctions函数
12.2.2 libfunctionsview函数
……
第13章 MATLAB与C/C++和Fortran的接口——从MATLAB调用C和Fortran程序
第14章 用C语言写MEX文件
第15章 MATLAB与C和Fortran的接口——在C和Fortran程序中调用MATLAB
第16章 MATLAB与Java的接口——从MATLAB调用Java
第17章 MATLAB与VB和Excel的接口——COM和DDE(仅支持Windows) 序言
MATLAB编译程序是一个不小的题目,且是一个不可缺少的工具,为什么就没有一本完整而系统的关于它的书呢?我想做,我想让还不十分了解编译程序的人们知道编译的全过程,知道它所包含的所有功能以及编译程序外延的事情,以便他们可以根据不同的MATLAB源程序设计个性化的编译过程。同时我也在关注着MATLAB与VB、C/C++等混合编程的问题,即MATLAB的外部接口。将MATLAB编译程序与外部接口放在一本书中,作为姊妹篇,这恐怕是一种天然的渊源。因为编译程序本身具有连接外部程序的功能,利用编译程序就可以直接将MATLAB与C/C++程序连接在一起,形成独立应用程序。
那么你知道为什么MATLAB与c或c++有天然的接口吗?
答案是:将MATLAB源程序编译成目标程序,分成两步。第一步编译MATLAB源程序成中间语言,即c或C++代码;第二步将c或c++代码编译成目标代码。
你知道服务器程序与客户程序不是网络概念,而是不同语言的程序连接时所扮演的“一仆一主”角色吗?你知道使用MATLAB的语法形式就能在MATLAB中直接操作Java的类和对象是为什么吗?你知道在MATLAB与VB的混合程序中是MATLAB程序控制VB程序,还是VB程序控制MATIAB程序呢?你知道在不打开Excel的情况下,用MATLAB可以建立工作簿、添加工作表、从工作表读写数据吗?这些答案尽在本书中。这些也正彰显出MATLAB外部接口的魅力。
MATLAB这几年在中国的应用和普及.日益扩展,它非常强的计算功能和适用于多学科、多领域的优势,是其他的编程语言所不能比拟的。将MATLAB作为计算引擎,再利用其他语言的长处写适当的子程序,或者使用已有的其他语言程序作为辅助,这岂不是扩大了MATIAB的能力!MATIAB的外部接口就是给它增加了几只有力的“臂膀”。
这本书的特色可以概括为:内容全面,阐述细致,实例众多,理论与实际相结合。
本书中绝大部分的例子都经实实在在的编译、运行。编译、运行的过程和结果以及图形都尽量完整。对于实际编译和运行中,原始资料叙述不详和错误的地方,都加以说明和纠正。运行中出现的问题及改正的方法,也都有描述。力求让别人多从实例中更好、更快地学到东西。程序例子中用到的函数,其参数和用法都一一详细说明,对读懂程序非常有用。
这本书开门见山直接切入主题,没有专门的章节写MATIAB的基础内容。书中对个别用到的MATIAB编程知识,做了简单介绍,这是远远不够的。有关MATIAB编程的诸多问题,请参看我所编写的《精通MATLAB 7编程与数据库应用》。
受知识和经历的局限,书中难免有错误和不当之处,请读者朋友予以批评指正。 文摘
插图:
有人问我:
编译程序(有的人称为编译器)有什么用?
我立即回答:
能将编程语言写成的源程序编译成可以执行的目标程序。
这我知道。除此之外它还能做什么?
我明白了,他想问的不是“编译”的笼统概念,而是想知道有关MATLAB编译程序的诸多事情。于是,我告诉他:MATLAB编译程序有很多选项,用不同的选项主要可以做到:
(1)生成独立应用程序,或别的软件组件(如共享库、CON对象等)。
(2)可选择不同的中间语言的编译程序(如C或C++编译程序)。
(3)可以输出追踪和查错信息,便于改正源程序的错误。
(4)可以只生成中间语言(c或C++)程序,或者连接需要的库文件做成完整的独立应用程序。
(5)输出整个的编译信息,用于查找编译过程的问题。
(6)选择最终的输出,避免不必要的资源耗费。等等。
当然,这仅仅是编译过程(或编译程序本身)所要完成的工作。还有编译程序外延的一些事情:
(1)如何将目标程序部署在没有安装MATLAB的机器上,需要准备哪些文件。
(2)怎样安装MATLAB编译程序,怎样安装c或C++编译程序。
MATLAB编译程序版本4(R14)适用于MATLAB7.0,MATLAB编译程序版本4兼容以前的版本。以前的版本能够编译的M文件,这个版本也可以编译。
编译程序版本4生成的API(应用编程接口)与以前的版本生成的不同。如果要开发软件组件,需要调整为新的API。| ISBN | |
|---|---|
| 出版社 | 国防工业出版社 |
| 作者 | 董振海 |
| 尺寸 | 16 |