在matlab中如何调用执行外部程序呢?

在matlab中如何调用执行外部程序呢?,第1张

简单地方法是通过磁盘文件交换数据,先将c程序运行结果保存为磁盘文件,然后再通过灶游matlab读取;

还有一个方法比较烦,但是要快很多,就是将你的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调用程序的函数也会一直等待程序解除阻塞才会返回。这时需要检查外部程序是否存在阻塞的问题,并进行修正。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12548280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-26
下一篇 2023-05-26

发表评论

登录后才能评论

评论列表(0条)

保存