还有一个方法比较烦,但是要快很多,就是将你的c程序编译成mex文件租档,可以在matlab里面直接调用。具体怎么 *** 作可以到隐型销网上找资源,非常多
前言
第1章MATLAB外部接口概述1
1.1MATLAB系统简介1
1.2MATLAB常用的数据类型2
1.2.1数值阵列2
1.2.2字符阵列4
1.2.3元组阵列5
1.2.4结构体阵列7
1.2.5类和对象9
1.3MATLAB接口简介10
1.3.1MEX文件10
1.3.2MATLAB引擎11
1.3.3MATLABC/C++数学函数库11
1.3.4MATLAB编译器12
1.3.5串口接口13
第2章MATLAB的MEX及MAT文件14
2.1C语言MEX14
2.2C-MEX混合编程16
2.3MEX文件的创立与调用18
2.3.1工程实例18
2.3.2编译器选项21
2.3.3脚本M文件向函数M文件的转化22
2.3.4MEX独立应用程序的发布24
2.3.5MEX的编程实例25
2.4FORTRAN语言的MEX文件29
2.4.1简单的FORTRAN语言MEX文件示例29
2.4.2传递字符串变量31
2.4.3在FORTRAN语言中调用MATLAB命令33
2.5 *** 作MAT文件35
2.5.1MAT文件格式35
2.5.2 *** 作MAT文件的MATLABAPI36
2.6VisualC++调用MAT时的环境设置39
2.7MAT文件应用举例40
第3章MATLAB数值运算及数据的导入/导出45
3.1数值运算45
3.1.1矩阵的构造45
3.1.2矩阵的基本运算48
3.1.3矩阵的函数运算50
3.1.4矩阵分解51
3.2文本的打开和关闭55
3.3二进制数据56
3.3.1二进制数据的导入56
3.3.2二进制数据的导出58
3.4数据分析和统计59
3.4.1基本袜轮唯数据分析函数59
3.4.2协方差和相关系数函数65
3.4.3有限差分66
3.5使用文件I/O函数67
3.5.1二进制数据的读取68
3.5.2二进制数据的写入69
3.5.3逐行读取文本文件69
3.5.4格式化写入文本数据70
3.6稀疏矩阵71
3.6.1稀疏矩阵的创建和存储71
3.6.2查看稀疏矩阵74
3.6.3稀疏矩阵的运算75
第4章MATLAB编译器77
4.1MATLAB编译器简介77
4.1.1MATLAB编译器使用77
4.1.2编译M文件的原因78
4.1.3MATLAB编译器的局限性79
4.2mcc编译器典型应用79
4.2.1独立可执行文件79
4.2.2C动态链接库84
4.2.3C++动态链接库85
4.2.4C/C++动态链接库的不同之处86
4.3进一步了解mcc命令87
4.3.1mcc常用命令选项87
4.3.2捆绑命令文件88
4.4M文件与C/C++混合创立可独立运行的程序88
4.5控制代码生成91
4.5.1控制代码生成介绍91
4.5.2编译器生成的头文件93
4.5.3内部接口函数95
4.5.4编译器支持的可执行类型98
4.5.5M代码与C/C++代码的接口102
4.6MATLAB和桐纳C++接口中函数注册103
4.7综合实例106
第5章MATLAB引擎的混合编程110
5.1MATLAB引擎函数简介110
5.2MATLAB引擎函数库111
5.3在VisualC++中调用MATLAB引擎时的环境设置116
5.4MATLAB引擎类的封装124
5.4.1CMATLABEng类的定义和实现代码124
5.4.2CMATLABEng说明和使用方法128
5.5CMATLABEng应用实例128
5.6在VisualFORTRAN中使用MATLABEngine131
第6章MATLAB与C/C++语言的接口136
6.1MATLAB与C语言混合编程数据类型136
6.1.1MATLABC语言接口中特殊的数据类型136
6.1.2size_t类型138
6.2MATLABC语言接口数据类型138
6.2.1MATLAB普通数值阵列的 *** 作138
6.2.2稀疏数组阵列140
6.2.3MATLAB结构体阵列143
6.2.4MATLAB元组146
6.2.5MATLAB字符阵列148
6.3MATLAB调用C149
6.3.1MEX文件告培接口150
6.3.2处理标量数据150
6.3.3处理字符串数据152
6.3.4处理稀疏矩阵153
6.3.5处理结构体和单元阵列156
6.4在C++中调用MATLABC++数学库函数159
6.4.1MATLABC++数学库函数介绍159
6.4.2对MATLAB阵列的 *** 作163
6.4.3索引172
6.4.4基于I/O流的阵列输入178
6.4.5库函数调用182
6.4.6数学运算符的使用186
6.5MATLABC++工具函数189
第7章MATLABCOMBuilder与VisualC++192
7.1COM基础知识192
7.2MATLABCOMBuilder简介193
7.3COMBuilder基础知识193
7.3.1配置MATLABC/C++编译器193
7.3.2创建MATLABCOMBuilder组件194
7.3.3MATLABCOMBuilder工具库197
7.3.4在VisualC++中调用COM组件的步骤198
7.4MATLABCOMBuilder与VisualC++之间的数据转换199
7.4.1VARIANT数据类型199
7.4.2SAFEAPPAY数据类型201
7.4.3SAFEAPPAY的创建函数202
7.4.4MATLABCOMBuilder与VisualC++之间的数据转换203
7.5MATLABCOMBuilder的枚举类型207
7.6综合实例209
第8章MATLAB与Java、Delphi接口编程212
8.1向MATLAB中引入Java类库213
8.2创建和使用Java对象216
8.2.1创建Java对象216
8.2.2Java对象的链接217
8.2.3存储和装载对象218
8.2.4使用Java对象222
8.3在MATLAB中使用Java数组224
8.3.1Java数组的创建225
8.3.2为Java数组赋值226
8.3.3访问Java数组元素227
8.3.4Java数组的引用和复制229
8.3.5Java数组的链接230
8.4向Java对象传递数据231
8.5处理Java方法调用返回的数据235
8.6综合实例236
8.7利用MATLAB引擎实例混合编程245
8.7.1动态链接库介绍245
8.7.2在Delphi中调用VisualC++创建的动态链接库的实例245
8.7.3MATLAB引擎动态链接库的设计250
8.8Delphi调用Mideva生成的动态链接库254
8.8.1Mideva介绍254
8.8.2应用实例254
8.9通过外部调用实现混合编程259
8.9.1外部调用方法介绍259
8.9.2应用实例260
第9章MATLAB与其他语言的混合编程262
9.1C++Builder与MATLAB262
9.1.1Mideva软件平台262
9.1.2C++Builder直接调用MATLAB函数263
9.1.3C++Builder调用MATLAB工具箱函数转换后的DLL264
9.1.4C++Builder与MATLAB混合编程的另一种实现266
9.1.5综合实例268
9.2MATLAB和Excel的混合编程270
9.2.1MATLAB和Excel的混合编程介绍270
9.2.2通过ExcelLink实现Excel和MATLAB的数据共享270
9.2.3通过Excel生成器276
9.2.4直接将MATLAB工作区间的数据复制到Excel278
9.3MATLAB与VisualBasic语言接口编程279
9.3.1DDE编程279
9.3.2MATLAB调用VisualBasic组件281
9.3.3VisualBasic调用MATLAB组件289
9.3.4综合实例290
第10章Matcom292
10.1Matcom的安装292
10.2编译独立的可执行程序293
10.3使用Matrix295
10.3.1创建一个新的C++工程295
10.3.2初始化工作296
10.3.3函数调用297
10.4在VisualC++中使用MatcomC++矩阵库299
10.5使用MatcomC++矩阵库的矩阵类Mm302
10.5.1创建字符矩阵302
10.5.2创建数值矩阵303
10.5.3利用下标访问矩阵的元素304
10.5.4获取矩阵数据的指针304
10.5.5Mm矩阵对象的初始化305
10.5.6MatcomC++矩阵库常量306
10.5.7Mm矩阵类的几个常用函数306
10.5.8调用系统函数308
10.6Matcom用于图形显示的常用函数310
10.7MatcomC++矩阵库的图形和图像显示功能310
10.8Matcom进行图像显示的常用函数312
10.9Matcom应用实例312
第11章MATLAB与外设的数据交换及混合编程318
11.1串口接口318
11.1.1什么是MATLAB串口接口318
11.1.2什么是串口通信318
11.1.3串口接口标准318
11.1.4使用串口通信电缆连接两台设备319
11.1.5串口信号和针分配320
11.1.6串口数据格式320
11.1.7检测 *** 作平台的串口信息320
11.2串口对象的建立321
11.2.1建立一个串口对象321
11.2.2连接到设备323
11.2.3配置通信参数324
11.3数据的读写325
11.3.1验证双通道示波器信息举例325
11.3.2控制对MATLAB命令行的访问326
11.3.3向串口设备写数据326
11.3.4从设备读入数据328
11.4事件和函数回调331
11.4.1回调函数应用举例331
11.4.2事件类型和回调属性332
11.4.3存储事件信息333
11.4.4建立和执行一个回调函数333
11.5记录数据到磁盘334
11.5.1记录数据的应用举例335
11.5.2创建多个记录文件335
11.5.3设定一个文件名335
11.5.4记录文件的格式336
11.6保存和装载数据336
11.6.1串口对象的读与写 *** 作的举例336
11.6.2断开连接和清空工作空间337
11.7混合编程应用实例338
11.7.1数字图像处理338
11.7.2MATLAB图像处理工具箱338
11.7.3VisualC++的图像处理位图文件读/写 *** 作339
11.8实例框架341
11.8.1框架搭建341
11.8.2模块划分343
11.8.3应用程序功能添加356
11.9混合编程的实现方法360
11.9.1图像形态学——MATLAB引擎数据交互实现360
11.9.2图像直方图统计——MATLAB引擎命令实现363
参考文献368
……
题主是否想询问“matlab调用外部exe一直运行的原因”。1、外部exe程序没有执行完毕、MATLAB没有正确地调用外部exe程序、程序出现死循凯陆环盯含顷、程序出现阻塞。
2、外部exe程序没有执行完毕:如果外部exe程序没有运行完毕,那么MATLAB调用程序的函数也会一直等待程序执行完毕才会返回。这时可以通过查看外老衫部程序的日志信息或者调试信息,来确定程序是不是因为出现错误而一直运行。
3、MATLAB没有正确地调用外部exe程序:如果调用外部exe程序的MATLAB代码写的不正确,可能会导致程序一直等待结果返回。可以通过检查MATLAB代码的语法和参数设置来确定是否存在调用问题。
4、程序出现死循环:如果外部程序出现了死循环,那么MATLAB调用程序的函数也会一直等待程序终止才会返回。这时需要检查外部程序是否存在死循环的问题,并进行修正。
5、程序出现阻塞:如果外部程序在执行过程中出现了阻塞,那么MATLAB调用程序的函数也会一直等待程序解除阻塞才会返回。这时需要检查外部程序是否存在阻塞的问题,并进行修正。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)