《精通MATLAB与CC++混合程序设计(第4版)》低价购书

您所在的位置:网站首页 精通MATLAB第三版 《精通MATLAB与CC++混合程序设计(第4版)》低价购书

《精通MATLAB与CC++混合程序设计(第4版)》低价购书

2024-07-05 03:11:59| 来源: 网络整理| 查看: 265

  《精通MATLAB与CC++混合程序设计(第4版)》结合大量实例,系统全面地介绍了MATLAB与C/C++进行混合程序设计的方法和技巧。全书共分六部分22章。第一部分重点介绍MATLAB与C/C++混合程序设计基础。第二部分重点介绍MATLAB中调用C/C++程序的方法。第三部分重点介绍MATLAB与C/C++语言之间的数据和函数接口。第四部分重点介绍MATLAB编译器的工作原理、发展历程和应用技巧等。第五部分重点介绍C/C++程序中调用MATLAB程序的方法。第六部分重点介绍与MATLAB关系密切的数学库的使用方法。  本书涵盖了MATLAB与C/C++混合程序设计的各个方面,内容由浅入深,并辅以大量实战型的实例程序,可供大中专院校学生作为教材使用,也可供相关领域工程师与科学家参考。 第一部分 MATLAB与C/C++混合程序设计基础 

第1章 MATLABM 语言程序设计基础 …………………………… 3 

 1.1 本章导读 ………………………………………………………………………3 

 1.2 MATLAB环境 ………………………………………………………………3 

  1.2.1 命令行窗口(CommandWindow)……………………………………… 4 

  1.2.2 代码编辑器(Editor) ……………………………………………………6 

  1.2.3 工作空间窗口(Workspace) ……………………………………………9 

  1.2.4 历史命令窗口(CommandHistory)…………………………………… 9 

  1.2.5 历史命令保存指令(diary) ……………………………………………12 

  1.2.6 使用 MATLAB环境的图形界面完成操作…………………………… 12 

  1.2.7 MATLAB帮助 …………………………………………………………16 

1.2.8 代码输入提示……………………………………………………………17 

 1.3 MATLABM 语言基础………………………………………………………18 

  1.3.1 MATLAB脚本文件(Script文件)…………………………………… 18 

  1.3.2 MATLAB运算符与表达式 ……………………………………………20 

  1.3.3 MATLAB函数 …………………………………………………………24 

  1.3.4 MATLABM 语言中的向量运算………………………………………26 

  1.3.5 MATLAB的程序控制 …………………………………………………32 

  1.3.6 MATLAB程序异常处理 ………………………………………………36 

  1.3.7 面向对象的程序设计……………………………………………………37 

 1.4 MATLAB常用的数据类型 …………………………………………………41 

  1.4.1 数值阵列…………………………………………………………………42 

  1.4.2 字符阵列…………………………………………………………………45 

  1.4.3 逻辑阵列…………………………………………………………………46 

  1.4.4 元组阵列…………………………………………………………………47 

  1.4.5 结构体阵列………………………………………………………………50 

  1.4.6 函数句柄阵列……………………………………………………………52 

 1.5 MATLAB常用数据可视化功能…………………………………………… 54 

  1.5.1 使用figure函数创建图形窗口 ……………………………………… 54 

  1.5.2 绘制曲线…………………………………………………………………55 

  1.5.3 使用area函数绘制面积图 …………………………………………… 61 

  1.5.4 使用quiver或quiver3函数绘制向量图 ………………………………66 

  1.5.5 显示图像数据……………………………………………………………68 

  1.5.6 显示三维曲面数据………………………………………………………69 

第2章 C语言和C++语言程序设计基础…………………………71 

 2.1 本章导读………………………………………………………………………71 

 2.2 编译环境………………………………………………………………………71 

 2.3 编辑器…………………………………………………………………………72 

 2.4 注 释…………………………………………………………………………73 

 2.5 文件包含(include) ………………………………………………………… 74 

 2.6 定义和声明……………………………………………………………………74 

 2.7 第一个C/C++语言程序 …………………………………………………75 

 2.8 编译和运行……………………………………………………………………77 

 2.9 数据类型………………………………………………………………………78 

  2.9.1 常 量……………………………………………………………………78 

  2.9.2 变 量……………………………………………………………………78 

  2.9.3 指 针……………………………………………………………………79 

  2.9.4 内存的分配与释放………………………………………………………82 

  2.9.5 数 组……………………………………………………………………82 

  2.9.6 字符串……………………………………………………………………84 

  2.9.7 枚举类型…………………………………………………………………86 

  2.9.8 结构体……………………………………………………………………87 

 2.10 操作符 ………………………………………………………………………88 

 2.11 程序结构 ……………………………………………………………………91 

 2.12 类与对象 ……………………………………………………………………97 

 2.13 函数模板和类模板…………………………………………………………104 

 2.14 C++/CLI ………………………………………………………………114 

第3章 MATLAB与C/C++语言对照 ………………………… 117 

 3.1 本章导读 ……………………………………………………………………117 

 3.2 MATLAB语言 ……………………………………………………………117 

 3.3 C语言 ………………………………………………………………………122 

 3.4 C++语言 …………………………………………………………………130 

 3.5 MATLAB语言、C语言和C++语言实现矩阵操作的比较…………… 139 

第4章 动态链接库基础 …………………………………………………142 

 4.1 本章导读 ……………………………………………………………………142 

 4.2 为什么使用动态链接库 ……………………………………………………142 

 4.3 C/C++语言实现动态链接库…………………………………………… 143 

 4.4 C语言与C++语言动态链接库的差异 ………………………………… 147 

 4.5 动态链接库的调用方式 ……………………………………………………147 

  4.5.1 隐式链接 ………………………………………………………………147 

  4.5.2 显式链接 ………………………………………………………………149 

 4.6 在 MATLAB环境下创建动态链接库 …………………………………… 152 

第5章 开发与调试环境说明………………………………………… 154 

 5.1 本章导读 ……………………………………………………………………154 

 5.2 MATLAB环境 ……………………………………………………………154 

 5.3 MATLABCoder图形界面 ………………………………………………155 

 5.4 MATLAB编译器 …………………………………………………………155 

 5.5 mex命令 ……………………………………………………………………156 

 5.6 mbuild命令 …………………………………………………………………158 

 5.7 C/C++语言集成开发环境……………………………………………… 160 

 5.8 Dependency工具 ……………………………………………………………163 

第二部分 在MATLAB中调用C/C++程序 

第6章 MATLAB通过 MEX文件调用C/C++程序……… 167 

 6.1 本章导读 ……………………………………………………………………167 

6.2 MEX文件 ………………………………………………………………… 167 

 6.3 MEX文件与 M 文件的关系 ……………………………………………… 168 

 6.4 MEX文件实例 ……………………………………………………………168 

 6.5 MEX文件结构 ……………………………………………………………170 

 6.6 编译 MEX文件 …………………………………………………………… 171 

 6.7 采用C++语言创建 MEX文件 …………………………………………172 

 6.8 在 MEX文件中实现图形界面功能 ……………………………………… 173 

 6.9 在 VisualC++中调试 MEX文件 ……………………………………… 179 

  6.9.1 利用VisualC++6.0调试 MEX文件 …………………………… 179 

  6.9.2 利用VisualC++2010调试 MEX文件…………………………… 184 

第7章 MATLAB通过动态链接库调用C/C++程序 …… 188 

 7.1 本章导读 ……………………………………………………………………188 

 7.2 动态链接库 …………………………………………………………………188 

 7.3 MATLAB动态链接库的基本操作……………………………………… 189 

  7.3.1 加载动态链接库 ………………………………………………………189 

  7.3.2 查看动态链接库信息 …………………………………………………190 

  7.3.3 利用 mbuild生成动态链接库………………………………………… 191 

  7.3.4 调用动态链接库中包含的函数 ………………………………………194 

 7.4 MATLAB动态链接库的操作函数……………………………………… 195 

  7.4.1 loadlibrary ……………………………………………………………195 

  7.4.2 unloadlibrary …………………………………………………………197 

  7.4.3 libfunctions……………………………………………………………197 

  7.4.4 libfunctionsview ……………………………………………………198 

  7.4.5 libisloaded ……………………………………………………………198 

  7.4.6 calllib …………………………………………………………………198 

  7.4.7 libpointer………………………………………………………………199 

  7.4.8 libstruct ………………………………………………………………199 

 7.5 MATLAB与动态链接库的参数传递和转换…………………………… 200 

  7.5.1 MATLAB与C/C++语言数据类型的对照关系………………… 200 

  7.5.2 MATLAB与动态链接库基本参数的直接传递…………………… 201 

  7.5.3 利用libpointer传递指针参数 ……………………………………… 203 

  7.5.4 传递 MATLAB阵列类型数据 ……………………………………… 208 

  7.5.5 利用libstruct传递结构体参数 ……………………………………… 210 

  7.5.6 传递枚举类型参数 ……………………………………………………212 

 7.6 实例1:调用第三方提供的动态链接库完成文件读取 …………………… 213 

 7.7 实例2:用户创建动态链接库完成文件操作 ……………………………… 215 

第8章 MATLAB通过可执行程序调用C/C++程序 …… 221 

 8.1 本章导读 ……………………………………………………………………221 

 8.2 在 MATLAB中执行外部程序 …………………………………………… 221 

 8.3 实例1:通过外部程序返回文件信息 ……………………………………… 222 

 8.4 实例2:通过外部程序转换文件格式 ……………………………………… 227 

第9章 MATLAB通过ActiveX调用C/C++程序 ………… 233 

 9.1 本章导读 ……………………………………………………………………233 

 9.2 ActiveX简介 ………………………………………………………………233 

 9.3 MATLAB调用ActiveX组件 …………………………………………… 234 

 9.4 实例:调用ActiveX打开文件………………………………………………239 

第三部分 MATLAB 与C/C++语言的数据和函数接口 

第10章 MATLAB与C/C++语言混合编程 

常用的数据类型 ……………………………………………… 245 

 10.1 本章导读……………………………………………………………………245 

 10.2 size_t类型 …………………………………………………………………245 

 10.3 mwIndex,mwSignedIndex和 mwSize类型 …………………………… 245 

 10.4 mxChar和 mxLogical类型 ……………………………………………… 246 

 10.5 mxClassID类型……………………………………………………………246 

 10.6 mxComplexity类型 ………………………………………………………247 

 10.7 mxArray类型 ……………………………………………………………248 

 10.8 特殊常量……………………………………………………………………248 

 10.9 mwArray类 ………………………………………………………………250 

  10.9.1 mwArray类的基本操作 ……………………………………………251 

  10.9.2 mwArray类操作的详细说明……………………………………… 252 

 10.10 mwString类………………………………………………………………258 

第11章 在C/C++语言中操作 MATLAB阵列的函数 … 260 

 11.1 本章导读……………………………………………………………………260 

 11.2 数值阵列操作函数…………………………………………………………260 

  11.2.1 创建数值阵列………………………………………………………260 

  11.2.2 数值阵列的数据操作…………………………………………………262 

  11.2.3 标量数据的操作………………………………………………………264 

 11.3 字符串阵列操作函数………………………………………………………264 

  11.3.1 创建字符串阵列………………………………………………………264 

  11.3.2 字符串阵列转换为C语言字符串 ………………………………… 266 

  11.3.3 获取字符阵列的数据…………………………………………………269 

 11.4 逻辑型阵列操作函数………………………………………………………269 

 11.5 稀疏矩阵操作函数…………………………………………………………270 

  11.5.1 创建稀疏矩阵的操作函数……………………………………………271 

  11.5.2 稀疏矩阵索引的操作函数……………………………………………271 

 11.6 结构体操作函数……………………………………………………………273 

  11.6.1 创建结构体……………………………………………………………273 

  11.6.2 结构体域的操作………………………………………………………274 

 11.7 元组阵列操作函数…………………………………………………………276 

 11.8 类对象阵列属性操作函数…………………………………………………278 

 11.9 内存操作函数………………………………………………………………281 

  11.9.1 内存分配操作函数……………………………………………………281 

  11.9.2 内存释放操作函数……………………………………………………282 

  11.9.3 阵列复制操作函数……………………………………………………283 

  11.9.4 MATLAB内存操作函数与C语言内存操作函数对比…………… 283 

 11.10 索引、维数和元素个数操作函数…………………………………………285 

  11.10.1 线性索引函数 ……………………………………………………285 

  11.10.2 维数和元素个数操作函数 ………………………………………286 

 11.11 MATLAB阵列验证函数(Is函数) ……………………………………288 

  11.11.1 判断 MATLAB阵列类型 ………………………………………… 288 

  11.11.2 其他Is函数 …………………………………………………………290 

 11.12 其他操作函数 ……………………………………………………………291 

第12章 在C/C++语言中操作 MATLAB阵列的方法 … 293 

 12.1 本章导读……………………………………………………………………293 

 12.2 MATLAB普通数值阵列的操作………………………………………… 293 

 12.3 稀疏数组阵列(SparseArray)的操作 …………………………………… 295 

 12.4 MATLAB字符阵列的操作 ………………………………………………299 

 12.5 MATLAB元组阵列的操作 ………………………………………………300 

 12.6 MATLAB结构体阵列的操作…………………………………………… 302 

 12.7 更改 MATLAB数值阵列的维数………………………………………… 305 

 12.8 分析并显示 MATLAB阵列的内容……………………………………… 309 

第13章 C/C++语言在 MEX程序中的专用接口函数…… 320 

 13.1 本章导读……………………………………………………………………320 

 13.2 工作区变量操作函数………………………………………………………320 

 13.3 输出警告和错误信息函数…………………………………………………327 

 13.4 调用 MATLAB函数和执行 MATLAB命令的函数……………………328 

 13.5 操作 MEX文件函数 ……………………………………………………… 331 

第14章 在C/C++程序中操作 MATLABMAT文件 …… 335 

 14.1 本章导读……………………………………………………………………335 

 14.2 MAT文件概要介绍 ………………………………………………………335 

 14.3 MAT文件格式 ……………………………………………………………336 

 14.4 操作 MAT文件的 mat API函数 ………………………………………339 

  14.4.1 MAT文件打开和关闭等操作函数………………………………… 340 

  14.4.2 循环获取 MAT文件中的变量及其信息…………………………… 341 

  14.4.3 获取 MAT文件中的变量目录和变量及其信息…………………… 342 

  14.4.4 将阵列写入 MAT文件或删除 MAT文件中的变量 ……………… 342 

 14.5 MAT文件操作方法 ………………………………………………………343 

  14.5.1 向 MAT文件中写入 mxArray变量 ………………………………343 

  14.5.2 从 MAT文件中读取 mxArray变量 ………………………………348 

  14.5.3 查看 MAT文件中的阵列变量列表………………………………… 352 

  14.5.4 遍历 MAT文件中的所有阵列变量………………………………… 354 

第四部分 MATLAB编译器的工作原理、发展历程和应用技巧 

第15章 MATLAB编译器……………………………………………… 359 

 15.1 本章导读……………………………………………………………………359 

 15.2 MATLAB编译器的工作原理…………………………………………… 359 

 15.3 MATLAB编译器的发展历程…………………………………………… 360 

 15.4 使用 MATLAB编译器的准备工作……………………………………… 362 

 15.5 mcc编译器的典型应用:独立可执行文件 ……………………………… 363 

  15.5.1 编译过程………………………………………………………………363 

  15.5.2 编译过程详细分析…………………………………………………366 

  15.5.3 img.ctf文件 ………………………………………………………367 

  15.5.4 img_main.c文件 ……………………………………………………368 

  15.5.5 使用 m选项 …………………………………………………………373 

 15.6 C语言动态链接库…………………………………………………………374 

  15.6.1 编译过程………………………………………………………………374 

  15.6.2 编译过程详细分析……………………………………………………374 

 15.7 C++语言动态链接库 ……………………………………………………376 

  15.7.1 编译过程………………………………………………………………376 

  15.7.2 编译过程详细分析……………………………………………………376 

 15.8 C语言与C++语言动态链接库的差异 ………………………………… 378 

 15.9 调用MATLAB编译器生成的C/C++语言动态链接库时常用的接口函数……………………………………………………………………379 

 15.10 mcc命令选项、宏及捆绑命令文件………………………………………381 

  15.10.1 mcc常用命令选项 …………………………………………………381 

  15.10.2 mcc宏选项 …………………………………………………………383 

  15.10.3 捆绑命令文件(bundlefile) ……………………………………384 

 15.11 MATLAB编译器应用中的常见问题………………………………… 385 

  15.11.1 编译Script文件 …………………………………………………385 

  15.11.2 MATLAB编译器关联分析失效的情况………………………… 385 

  15.11.3 在C/C++程序中调用MATLAB内置函数(builtGinfunction)  388 

  15.11.4 可变参数传递(varargin,varargout)……………………………388 

  15.11.5 在 MATLAB环境下执行与通过 MCR执行时的差异 ………… 390 

  15.11.6 获取CTF文件的目录……………………………………………… 391 

  15.11.7 屏幕打印和错误信息显示函数 …………………………………391 

 15.12 MATLAB配置工具(DeploymentTool)……………………………… 396 

  15.12.1 DeploymentTool工具简介 ………………………………………396 

  15.12.2 利用 MATLAB配置工具编译独立可执行文件 ………………… 397 

 15.13 程序发布 …………………………………………………………………399 

  15.13.1 MCR版本 …………………………………………………………399 

  15.13.2 安装 MCR ………………………………………………………… 399 

  15.13.3 独立可执行文件发布需要附加的文件 …………………………400 

  15.13.4 动态链接库发布需要附加的文件 ………………………………400 

第五部分 在C/C++程序中调用MATLAB程序 

第16章 生成可独立运行的MATLAB程序 ……………………403 

 16.1 本章导读……………………………………………………………………403 

 16.2 MATLAB环境下编译独立可执行文件………………………………… 403 

  16.2.1 直接编译 M 文件 ……………………………………………………403 

  16.2.2 在 MATLABM 文件中调用C/C++函数 ……………………… 404 

  16.2.3 在C/C++语言中调用由 MATLAB.m文件生成的函数 …… 407 

 16.3 VisualC++环境下编译独立可执行文件……………………………… 413 

  16.3.1 趣味弹球 MATLABM 程序 ……………………………………… 414 

  16.3.2 去除控制台窗口………………………………………………………418 

  16.3.3 去除控制台窗口的另一种方法………………………………………426 

  16.3.4 将输出改到 Windows窗口上 ……………………………………… 433 

第17章 C/C++程序通过引擎和动态链接库调用MATLAB程序 ………………………………………………… 447

 17.1 本章导读……………………………………………………………………447 

 17.2 在C++程序中调用 MATLAB引擎 ……………………………………447 

  17.2.1 API函数介绍…………………………………………………………447 

  17.2.2 VisualC++调用 MATLAB引擎的实例 ………………………… 448 

 17.3 VisualC++中调用 MATLABM 函数编译后的动态链接库………… 458 

第18章 C/C++程序通过COM 组件调用MATLAB程序 

………………………………………………………………………… 471 

 18.1 本章导读……………………………………………………………………471 

 18.2 COM 基础知识 ……………………………………………………………471 

  18.2.1 COM 组件 ……………………………………………………………471 

  18.2.2 对象和接口……………………………………………………………472 

  18.2.3 COM 在 Windows平台下的实现方式 …………………………… 473 

 18.3 在 VisualC++中调用COM 组件 ……………………………………… 475 

  18.3.1 COM 组件与 HRESULT类型 …………………………………… 475 

  18.3.2 COM 组件与字符串 …………………………………………………476 

  18.3.3 CLSID和ProgID的相互转换 ……………………………………… 476 

  18.3.4 AddRef(),Release(),QueryInterface()接口函数………………476 

  18.3.5 在VisualC++中调用COM 组件的步骤 ………………………… 477 

 18.4 MATLAB编译COM 组件的基础知识 ………………………………… 479 

  18.4.1 配置 MATLABC/C++语言编译器 ………………………………479 

  18.4.2 使用 MATLAB的DeploymentTool工具…………………………479 

  18.4.3 实现COM 组件的方法 ……………………………………………… 480 

  18.4.4 实现COM 组件的属性 ……………………………………………… 481 

  18.4.5 编译COM 组件 ……………………………………………………… 481 

 18.5 C/C++程序调用由DeploymentTool生成的组件 …………………… 482 

 18.6 MATLABCOM 组件与C/C++程序之间的数据转换 ……………… 489 

  18.6.1 VARIANT数据类型 ………………………………………………489 

  18.6.2 COleVariant和_variant_t类 ………………………………………491 

  18.6.3 SAFEARRAY数据类型 ……………………………………………492 

  18.6.4 SAFEARRAY的创建函数 …………………………………………493 

  18.6.5 MATLAB数据类型的VARIANT类型表示 …………………… 494 

  18.6.6 VARIANT变量与 MATLAB阵列的转换规则 ………………… 495 

  18.6.7 阵列格式标志(arrayformattingflags)……………………………498 

  18.6.8 数据转换标志(dataconversionflags) ……………………………498 

 18.7 MATLABCOM 工具库 …………………………………………………500

  18.7.1 简 介…………………………………………………………………500

  18.7.2 MWUtil类……………………………………………………………500

  18.7.3 MWFlags类 …………………………………………………………501

  18.7.4 MWStruct类…………………………………………………………502

  18.7.5 MWField类 ………………………………………………………… 505

  18.7.6 MWComplex类………………………………………………………506

  18.7.7 MWSparse类…………………………………………………………506

  18.7.8 MWArg类……………………………………………………………507

  18.7.9 MATLABMWComUtil的枚举类型 ………………………………507

 18.8 安装和发布 MATLABCOM 组件 ……………………………………… 509

 18.9 综合实例……………………………………………………………………510

  18.9.1 实例1:数据转换及数组格式标志的使用 ……………………… 510

  18.9.2 实例2:采用 MWUtil处理varargin输入和varargout输出 …… 514

  18.9.3 实例3:MWStruct和 MWField的操作实例 ……………………… 519

  18.9.4 实例4:MWComplex操作实例 ……………………………………528

  18.9.5 实例5:MWSParse操作实例 ………………………………………532

第19章 C/C++程序通过.NET 配件调用MATLAB程序…… 536

 19.1 本章导读……………………………………………………………………536

 19.2 将 MATLAB程序编译为.NET配件 ……………………………………536

 19.3 在 VisualC++2010中调用.NET配件 ………………………………537

 19.4 VisualC++与 MATLAB之间的数据转换……………………………… 539

 19.5 使用 MWNumericArray操作数值阵列 ………………………………… 540

  19.5.1 数值阵列的类型………………………………………………………540

  19.5.2 C++索引与 MATLAB阵列索引 ………………………………… 541

  19.5.3 实型阵列和复型阵列…………………………………………………541

  19.5.4 创建标量……………………………………………………………542

  19.5.5 创建矢量………………………………………………………………543

  19.5.6 创建矩阵………………………………………………………………545

  19.5.7 创建任意维数的数值阵列…………………………………………547

 19.6 使用 MWCharArray操作字符阵列……………………………………… 549

 19.7 使用 MWLogicalArray操作逻辑阵列 ………………………………… 551

 19.8 使用 MWStructArray操作结构体阵列 ………………………………… 552

 19.9 使用 MWCellArray操作元组阵列 ……………………………………… 553

第20章 将 MATLABM 程序转换为C/C++程序………… 555

 20.1 本章导读……………………………………………………………………555

 20.2 MATLABCoder的功能 …………………………………………………555

 20.3 MATLABCoder对 MATLABM 语言代码的约束 …………………… 556

 20.4 第一个实例…………………………………………………………………557

  20.4.1 实例说明………………………………………………………………557

  20.4.2 基本原理………………………………………………………………558

  20.4.3 代码实现………………………………………………………………559

  20.4.4 实例执行结果…………………………………………………………567

  20.4.5 生成C/C++代码 …………………………………………………569

 20.5 MATLABCoder图形界面 ………………………………………………569

 20.6 codegen命令 ………………………………………………………………571

 20.7 MATLABCoder的典型应用 ……………………………………………573

  20.7.1 将 MATLABM 程序转换为C/C++代码 ……………………… 573

  20.7.2 将 MATLABM 程序转换为 MEX文件……………………………575

  20.7.3 将 MATLABM 程序编译为可执行文件 ………………………… 575

  20.7.4 将 MATLABM 程序编译为动态链接库 ………………………… 576

 20.8 用 MATLABCoder转换后的C/C++代码中的数据类型……………576

  20.8.1 变量类型定义……………………………577

  20.8.2 强制类型转换…………………………………………………………577

  20.8.3 基本类型定义………………………………………………………578

  20.8.4 复数类型………………………………………………………………580

  20.8.5 固定长度变量与可变长度变量………………………………………582

  20.8.6 结构体类型……………………………………………………………587

第六部分 与MATLAB相关的数学库

第21章 C/C++程序调用Matcom矩阵库 ……………………… 593

 21.1 本章导读……………………………………………………………………593

 21.2 Matcom与 MATLAB …………………………………………………… 593

 21.3 安装 Matcom ……………………………………………………………… 593

 21.4 在 VisualC++中使用 MatcomC++矩阵库 ………………………… 595

 21.5 使用 MatcomC++矩阵库的矩阵类 Mm ……………………………… 601

  21.5.1 创建数值矩阵…………………………………………………………601

  21.5.2 创建字符矩阵…………………………………………………………602

  21.5.3 利用下标访问矩阵的元素……………………………………………603

  21.5.4 获取矩阵数据的指针…………………………………………………603

  21.5.5 Mm矩阵对象的初始化………………………………………………604

  21.5.6 Mm矩阵类的几个常用函数…………………………………………605

  21.5.7 MatcomC++矩阵库常量 …………………………………………607

  21.5.8 调用系统函数…………………………………………………………607

 21.6 Matcom矩阵库的图形和图像显示功能………………………………… 609

 21.7 Matcom用于图形显示的常用函数……………………………………… 610

 21.8 Matcom 用于图像显示的常用函数……………………………………… 611

 21.9 Matcom 的应用实例 ………………………………………………………612

  21.9.1 实例1:Matcom Mm矩阵类的创建及使用 ………………………612

  21.9.2 实例2:图形绘制的基本功能演示 …………………………………616

  21.9.3 实例3:利用 Matcom 绘制动态曲线 ………………………………621

  21.9.4 实例4:利用 Matcom 进行图像显示 ……………………………633

  21.9.5 实例5:Matcom 二维和三维曲线绘制综合应用 ………………… 646

第22章 C/C++程序调用 MATLABC++数学库 ……… 660

 22.1 本章导读……………………………………………………………………660

 22.2 MATLABC++数学库 …………………………………………………660

 22.3 在 VisualC++工程中调用 MATLABC++数学库 ………………… 660

 22.4 MATLABC++数学库的使用 …………………………………………663

 22.5 输入和输出 MATLAB阵列……………………………………………… 663

  22.5.1 直接输出到屏幕……………………………………………………663

  22.5.2 MATLABmwArray阵列数据的输入和输出的其他方式……… 664

 22.6 操作 MATLABmwArray阵列 ………………………………………… 668

  22.6.1 创建 MATLABmwArray阵列的操作 …………………………… 668

  22.6.2 采用 MATLABC++数学库操作稀疏矩阵 ………………………671

  22.6.3 MATLABC++数学库对字符阵列的操作……………………… 676

  22.6.4 MATLABC++数学库对元组阵列的操作……………………… 679

  22.6.5 MATLABC++数学库对结构体阵列的操作…………………… 682

  22.6.6 访问 mwArray类中的数据 ………………………………………… 684

  22.6.7 MATLABC++数学库对 MATLAB阵列操作常用的小技巧 … 687

  22.6.8 调用系统函数…………………………………………………………691

参考文献 

内容简介:   《精通MATLAB与CC++混合程序设计(第4版)》结合大量实例,系统全面地介绍了MATLAB与C/C++进行混合程序设计的方法和技巧。全书共分六部分22章。第一部分重点介绍MATLAB与C/C++混合程序设计基础。第二部分重点介绍MATLAB中调用C/C++程序的方法。第三部分重点介绍MATLAB与C/C++语言之间的数据和函数接口。第四部分重点介绍MATLAB编译器的工作原理、发展历程和应用技巧等。第五部分重点介绍C/C++程序中调用MATLAB程序的方法。第六部分重点介绍与MATLAB关系密切的数学库的使用方法。  本书涵盖了MATLAB与C/C++混合程序设计的各个方面,内容由浅入深,并辅以大量实战型的实例程序,可供大中专院校学生作为教材使用,也可供相关领域工程师与科学家参考。 目录: 第一部分 MATLAB与C/C++混合程序设计基础 

第1章 MATLABM 语言程序设计基础 …………………………… 3 

 1.1 本章导读 ………………………………………………………………………3 

 1.2 MATLAB环境 ………………………………………………………………3 

  1.2.1 命令行窗口(CommandWindow)……………………………………… 4 

  1.2.2 代码编辑器(Editor) ……………………………………………………6 

  1.2.3 工作空间窗口(Workspace) ……………………………………………9 

  1.2.4 历史命令窗口(CommandHistory)…………………………………… 9 

  1.2.5 历史命令保存指令(diary) ……………………………………………12 

  1.2.6 使用 MATLAB环境的图形界面完成操作…………………………… 12 

  1.2.7 MATLAB帮助 …………………………………………………………16 

1.2.8 代码输入提示……………………………………………………………17 

 1.3 MATLABM 语言基础………………………………………………………18 

  1.3.1 MATLAB脚本文件(Script文件)…………………………………… 18 

  1.3.2 MATLAB运算符与表达式 ……………………………………………20 

  1.3.3 MATLAB函数 …………………………………………………………24 

  1.3.4 MATLABM 语言中的向量运算………………………………………26 

  1.3.5 MATLAB的程序控制 …………………………………………………32 

  1.3.6 MATLAB程序异常处理 ………………………………………………36 

  1.3.7 面向对象的程序设计……………………………………………………37 

 1.4 MATLAB常用的数据类型 …………………………………………………41 

  1.4.1 数值阵列…………………………………………………………………42 

  1.4.2 字符阵列…………………………………………………………………45 

  1.4.3 逻辑阵列…………………………………………………………………46 

  1.4.4 元组阵列…………………………………………………………………47 

  1.4.5 结构体阵列………………………………………………………………50 

  1.4.6 函数句柄阵列……………………………………………………………52 

 1.5 MATLAB常用数据可视化功能…………………………………………… 54 

  1.5.1 使用figure函数创建图形窗口 ……………………………………… 54 

  1.5.2 绘制曲线…………………………………………………………………55 

  1.5.3 使用area函数绘制面积图 …………………………………………… 61 

  1.5.4 使用quiver或quiver3函数绘制向量图 ………………………………66 

  1.5.5 显示图像数据……………………………………………………………68 

  1.5.6 显示三维曲面数据………………………………………………………69 

第2章 C语言和C++语言程序设计基础…………………………71 

 2.1 本章导读………………………………………………………………………71 

 2.2 编译环境………………………………………………………………………71 

 2.3 编辑器…………………………………………………………………………72 

 2.4 注 释…………………………………………………………………………73 

 2.5 文件包含(include) ………………………………………………………… 74 

 2.6 定义和声明……………………………………………………………………74 

 2.7 第一个C/C++语言程序 …………………………………………………75 

 2.8 编译和运行……………………………………………………………………77 

 2.9 数据类型………………………………………………………………………78 

  2.9.1 常 量……………………………………………………………………78 

  2.9.2 变 量……………………………………………………………………78 

  2.9.3 指 针……………………………………………………………………79 

  2.9.4 内存的分配与释放………………………………………………………82 

  2.9.5 数 组……………………………………………………………………82 

  2.9.6 字符串……………………………………………………………………84 

  2.9.7 枚举类型…………………………………………………………………86 

  2.9.8 结构体……………………………………………………………………87 

 2.10 操作符 ………………………………………………………………………88 

 2.11 程序结构 ……………………………………………………………………91 

 2.12 类与对象 ……………………………………………………………………97 

 2.13 函数模板和类模板…………………………………………………………104 

 2.14 C++/CLI ………………………………………………………………114 

第3章 MATLAB与C/C++语言对照 ………………………… 117 

 3.1 本章导读 ……………………………………………………………………117 

 3.2 MATLAB语言 ……………………………………………………………117 

 3.3 C语言 ………………………………………………………………………122 

 3.4 C++语言 …………………………………………………………………130 

 3.5 MATLAB语言、C语言和C++语言实现矩阵操作的比较…………… 139 

第4章 动态链接库基础 …………………………………………………142 

 4.1 本章导读 ……………………………………………………………………142 

 4.2 为什么使用动态链接库 ……………………………………………………142 

 4.3 C/C++语言实现动态链接库…………………………………………… 143 

 4.4 C语言与C++语言动态链接库的差异 ………………………………… 147 

 4.5 动态链接库的调用方式 ……………………………………………………147 

  4.5.1 隐式链接 ………………………………………………………………147 

  4.5.2 显式链接 ………………………………………………………………149 

 4.6 在 MATLAB环境下创建动态链接库 …………………………………… 152 

第5章 开发与调试环境说明………………………………………… 154 

 5.1 本章导读 ……………………………………………………………………154 

 5.2 MATLAB环境 ……………………………………………………………154 

 5.3 MATLABCoder图形界面 ………………………………………………155 

 5.4 MATLAB编译器 …………………………………………………………155 

 5.5 mex命令 ……………………………………………………………………156 

 5.6 mbuild命令 …………………………………………………………………158 

 5.7 C/C++语言集成开发环境……………………………………………… 160 

 5.8 Dependency工具 ……………………………………………………………163 

第二部分 在MATLAB中调用C/C++程序 

第6章 MATLAB通过 MEX文件调用C/C++程序……… 167 

 6.1 本章导读 ……………………………………………………………………167 

6.2 MEX文件 ………………………………………………………………… 167 

 6.3 MEX文件与 M 文件的关系 ……………………………………………… 168 

 6.4 MEX文件实例 ……………………………………………………………168 

 6.5 MEX文件结构 ……………………………………………………………170 

 6.6 编译 MEX文件 …………………………………………………………… 171 

 6.7 采用C++语言创建 MEX文件 …………………………………………172 

 6.8 在 MEX文件中实现图形界面功能 ……………………………………… 173 

 6.9 在 VisualC++中调试 MEX文件 ……………………………………… 179 

  6.9.1 利用VisualC++6.0调试 MEX文件 …………………………… 179 

  6.9.2 利用VisualC++2010调试 MEX文件…………………………… 184 

第7章 MATLAB通过动态链接库调用C/C++程序 …… 188 

 7.1 本章导读 ……………………………………………………………………188 

 7.2 动态链接库 …………………………………………………………………188 

 7.3 MATLAB动态链接库的基本操作……………………………………… 189 

  7.3.1 加载动态链接库 ………………………………………………………189 

  7.3.2 查看动态链接库信息 …………………………………………………190 

  7.3.3 利用 mbuild生成动态链接库………………………………………… 191 

  7.3.4 调用动态链接库中包含的函数 ………………………………………194 

 7.4 MATLAB动态链接库的操作函数……………………………………… 195 

  7.4.1 loadlibrary ……………………………………………………………195 

  7.4.2 unloadlibrary …………………………………………………………197 

  7.4.3 libfunctions……………………………………………………………197 

  7.4.4 libfunctionsview ……………………………………………………198 

  7.4.5 libisloaded ……………………………………………………………198 

  7.4.6 calllib …………………………………………………………………198 

  7.4.7 libpointer………………………………………………………………199 

  7.4.8 libstruct ………………………………………………………………199 

 7.5 MATLAB与动态链接库的参数传递和转换…………………………… 200 

  7.5.1 MATLAB与C/C++语言数据类型的对照关系………………… 200 

  7.5.2 MATLAB与动态链接库基本参数的直接传递…………………… 201 

  7.5.3 利用libpointer传递指针参数 ……………………………………… 203 

  7.5.4 传递 MATLAB阵列类型数据 ……………………………………… 208 

  7.5.5 利用libstruct传递结构体参数 ……………………………………… 210 

  7.5.6 传递枚举类型参数 ……………………………………………………212 

 7.6 实例1:调用第三方提供的动态链接库完成文件读取 …………………… 213 

 7.7 实例2:用户创建动态链接库完成文件操作 ……………………………… 215 

第8章 MATLAB通过可执行程序调用C/C++程序 …… 221 

 8.1 本章导读 ……………………………………………………………………221 

 8.2 在 MATLAB中执行外部程序 …………………………………………… 221 

 8.3 实例1:通过外部程序返回文件信息 ……………………………………… 222 

 8.4 实例2:通过外部程序转换文件格式 ……………………………………… 227 

第9章 MATLAB通过ActiveX调用C/C++程序 ………… 233 

 9.1 本章导读 ……………………………………………………………………233 

 9.2 ActiveX简介 ………………………………………………………………233 

 9.3 MATLAB调用ActiveX组件 …………………………………………… 234 

 9.4 实例:调用ActiveX打开文件………………………………………………239 

第三部分 MATLAB 与C/C++语言的数据和函数接口 

第10章 MATLAB与C/C++语言混合编程 

常用的数据类型 ……………………………………………… 245 

 10.1 本章导读……………………………………………………………………245 

 10.2 size_t类型 …………………………………………………………………245 

 10.3 mwIndex,mwSignedIndex和 mwSize类型 …………………………… 245 

 10.4 mxChar和 mxLogical类型 ……………………………………………… 246 

 10.5 mxClassID类型……………………………………………………………246 

 10.6 mxComplexity类型 ………………………………………………………247 

 10.7 mxArray类型 ……………………………………………………………248 

 10.8 特殊常量……………………………………………………………………248 

 10.9 mwArray类 ………………………………………………………………250 

  10.9.1 mwArray类的基本操作 ……………………………………………251 

  10.9.2 mwArray类操作的详细说明……………………………………… 252 

 10.10 mwString类………………………………………………………………258 

第11章 在C/C++语言中操作 MATLAB阵列的函数 … 260 

 11.1 本章导读……………………………………………………………………260 

 11.2 数值阵列操作函数…………………………………………………………260 

  11.2.1 创建数值阵列………………………………………………………260 

  11.2.2 数值阵列的数据操作…………………………………………………262 

  11.2.3 标量数据的操作………………………………………………………264 

 11.3 字符串阵列操作函数………………………………………………………264 

  11.3.1 创建字符串阵列………………………………………………………264 

  11.3.2 字符串阵列转换为C语言字符串 ………………………………… 266 

  11.3.3 获取字符阵列的数据…………………………………………………269 

 11.4 逻辑型阵列操作函数………………………………………………………269 

 11.5 稀疏矩阵操作函数…………………………………………………………270 

  11.5.1 创建稀疏矩阵的操作函数……………………………………………271 

  11.5.2 稀疏矩阵索引的操作函数……………………………………………271 

 11.6 结构体操作函数……………………………………………………………273 

  11.6.1 创建结构体……………………………………………………………273 

  11.6.2 结构体域的操作………………………………………………………274 

 11.7 元组阵列操作函数…………………………………………………………276 

 11.8 类对象阵列属性操作函数…………………………………………………278 

 11.9 内存操作函数………………………………………………………………281 

  11.9.1 内存分配操作函数……………………………………………………281 

  11.9.2 内存释放操作函数……………………………………………………282 

  11.9.3 阵列复制操作函数……………………………………………………283 

  11.9.4 MATLAB内存操作函数与C语言内存操作函数对比…………… 283 

 11.10 索引、维数和元素个数操作函数…………………………………………285 

  11.10.1 线性索引函数 ……………………………………………………285 

  11.10.2 维数和元素个数操作函数 ………………………………………286 

 11.11 MATLAB阵列验证函数(Is函数) ……………………………………288 

  11.11.1 判断 MATLAB阵列类型 ………………………………………… 288 

  11.11.2 其他Is函数 …………………………………………………………290 

 11.12 其他操作函数 ……………………………………………………………291 

第12章 在C/C++语言中操作 MATLAB阵列的方法 … 293 

 12.1 本章导读……………………………………………………………………293 

 12.2 MATLAB普通数值阵列的操作………………………………………… 293 

 12.3 稀疏数组阵列(SparseArray)的操作 …………………………………… 295 

 12.4 MATLAB字符阵列的操作 ………………………………………………299 

 12.5 MATLAB元组阵列的操作 ………………………………………………300 

 12.6 MATLAB结构体阵列的操作…………………………………………… 302 

 12.7 更改 MATLAB数值阵列的维数………………………………………… 305 

 12.8 分析并显示 MATLAB阵列的内容……………………………………… 309 

第13章 C/C++语言在 MEX程序中的专用接口函数…… 320 

 13.1 本章导读……………………………………………………………………320 

 13.2 工作区变量操作函数………………………………………………………320 

 13.3 输出警告和错误信息函数…………………………………………………327 

 13.4 调用 MATLAB函数和执行 MATLAB命令的函数……………………328 

 13.5 操作 MEX文件函数 ……………………………………………………… 331 

第14章 在C/C++程序中操作 MATLABMAT文件 …… 335 

 14.1 本章导读……………………………………………………………………335 

 14.2 MAT文件概要介绍 ………………………………………………………335 

 14.3 MAT文件格式 ……………………………………………………………336 

 14.4 操作 MAT文件的 mat API函数 ………………………………………339 

  14.4.1 MAT文件打开和关闭等操作函数………………………………… 340 

  14.4.2 循环获取 MAT文件中的变量及其信息…………………………… 341 

  14.4.3 获取 MAT文件中的变量目录和变量及其信息…………………… 342 

  14.4.4 将阵列写入 MAT文件或删除 MAT文件中的变量 ……………… 342 

 14.5 MAT文件操作方法 ………………………………………………………343 

  14.5.1 向 MAT文件中写入 mxArray变量 ………………………………343 

  14.5.2 从 MAT文件中读取 mxArray变量 ………………………………348 

  14.5.3 查看 MAT文件中的阵列变量列表………………………………… 352 

  14.5.4 遍历 MAT文件中的所有阵列变量………………………………… 354 

第四部分 MATLAB编译器的工作原理、发展历程和应用技巧 

第15章 MATLAB编译器……………………………………………… 359 

 15.1 本章导读……………………………………………………………………359 

 15.2 MATLAB编译器的工作原理…………………………………………… 359 

 15.3 MATLAB编译器的发展历程…………………………………………… 360 

 15.4 使用 MATLAB编译器的准备工作……………………………………… 362 

 15.5 mcc编译器的典型应用:独立可执行文件 ……………………………… 363 

  15.5.1 编译过程………………………………………………………………363 

  15.5.2 编译过程详细分析…………………………………………………366 

  15.5.3 img.ctf文件 ………………………………………………………367 

  15.5.4 img_main.c文件 ……………………………………………………368 

  15.5.5 使用 m选项 …………………………………………………………373 

 15.6 C语言动态链接库…………………………………………………………374 

  15.6.1 编译过程………………………………………………………………374 

  15.6.2 编译过程详细分析……………………………………………………374 

 15.7 C++语言动态链接库 ……………………………………………………376 

  15.7.1 编译过程………………………………………………………………376 

  15.7.2 编译过程详细分析……………………………………………………376 

 15.8 C语言与C++语言动态链接库的差异 ………………………………… 378 

 15.9 调用MATLAB编译器生成的C/C++语言动态链接库时常用的接口函数……………………………………………………………………379 

 15.10 mcc命令选项、宏及捆绑命令文件………………………………………381 

  15.10.1 mcc常用命令选项 …………………………………………………381 

  15.10.2 mcc宏选项 …………………………………………………………383 

  15.10.3 捆绑命令文件(bundlefile) ……………………………………384 

 15.11 MATLAB编译器应用中的常见问题………………………………… 385 

  15.11.1 编译Script文件 …………………………………………………385 

  15.11.2 MATLAB编译器关联分析失效的情况………………………… 385 

  15.11.3 在C/C++程序中调用MATLAB内置函数(builtGinfunction)  388 

  15.11.4 可变参数传递(varargin,varargout)……………………………388 

  15.11.5 在 MATLAB环境下执行与通过 MCR执行时的差异 ………… 390 

  15.11.6 获取CTF文件的目录……………………………………………… 391 

  15.11.7 屏幕打印和错误信息显示函数 …………………………………391 

 15.12 MATLAB配置工具(DeploymentTool)……………………………… 396 

  15.12.1 DeploymentTool工具简介 ………………………………………396 

  15.12.2 利用 MATLAB配置工具编译独立可执行文件 ………………… 397 

 15.13 程序发布 …………………………………………………………………399 

  15.13.1 MCR版本 …………………………………………………………399 

  15.13.2 安装 MCR ………………………………………………………… 399 

  15.13.3 独立可执行文件发布需要附加的文件 …………………………400 

  15.13.4 动态链接库发布需要附加的文件 ………………………………400 

第五部分 在C/C++程序中调用MATLAB程序 

第16章 生成可独立运行的MATLAB程序 ……………………403 

 16.1 本章导读……………………………………………………………………403 

 16.2 MATLAB环境下编译独立可执行文件………………………………… 403 

  16.2.1 直接编译 M 文件 ……………………………………………………403 

  16.2.2 在 MATLABM 文件中调用C/C++函数 ……………………… 404 

  16.2.3 在C/C++语言中调用由 MATLAB.m文件生成的函数 …… 407 

 16.3 VisualC++环境下编译独立可执行文件……………………………… 413 

  16.3.1 趣味弹球 MATLABM 程序 ……………………………………… 414 

  16.3.2 去除控制台窗口………………………………………………………418 

  16.3.3 去除控制台窗口的另一种方法………………………………………426 

  16.3.4 将输出改到 Windows窗口上 ……………………………………… 433 

第17章 C/C++程序通过引擎和动态链接库调用MATLAB程序 ………………………………………………… 447

 17.1 本章导读……………………………………………………………………447 

 17.2 在C++程序中调用 MATLAB引擎 ……………………………………447 

  17.2.1 API函数介绍…………………………………………………………447 

  17.2.2 VisualC++调用 MATLAB引擎的实例 ………………………… 448 

 17.3 VisualC++中调用 MATLABM 函数编译后的动态链接库………… 458 

第18章 C/C++程序通过COM 组件调用MATLAB程序 

………………………………………………………………………… 471 

 18.1 本章导读……………………………………………………………………471 

 18.2 COM 基础知识 ……………………………………………………………471 

  18.2.1 COM 组件 ……………………………………………………………471 

  18.2.2 对象和接口……………………………………………………………472 

  18.2.3 COM 在 Windows平台下的实现方式 …………………………… 473 

 18.3 在 VisualC++中调用COM 组件 ……………………………………… 475 

  18.3.1 COM 组件与 HRESULT类型 …………………………………… 475 

  18.3.2 COM 组件与字符串 …………………………………………………476 

  18.3.3 CLSID和ProgID的相互转换 ……………………………………… 476 

  18.3.4 AddRef(),Release(),QueryInterface()接口函数………………476 

  18.3.5 在VisualC++中调用COM 组件的步骤 ………………………… 477 

 18.4 MATLAB编译COM 组件的基础知识 ………………………………… 479 

  18.4.1 配置 MATLABC/C++语言编译器 ………………………………479 

  18.4.2 使用 MATLAB的DeploymentTool工具…………………………479 

  18.4.3 实现COM 组件的方法 ……………………………………………… 480 

  18.4.4 实现COM 组件的属性 ……………………………………………… 481 

  18.4.5 编译COM 组件 ……………………………………………………… 481 

 18.5 C/C++程序调用由DeploymentTool生成的组件 …………………… 482 

 18.6 MATLABCOM 组件与C/C++程序之间的数据转换 ……………… 489 

  18.6.1 VARIANT数据类型 ………………………………………………489 

  18.6.2 COleVariant和_variant_t类 ………………………………………491 

  18.6.3 SAFEARRAY数据类型 ……………………………………………492 

  18.6.4 SAFEARRAY的创建函数 …………………………………………493 

  18.6.5 MATLAB数据类型的VARIANT类型表示 …………………… 494 

  18.6.6 VARIANT变量与 MATLAB阵列的转换规则 ………………… 495 

  18.6.7 阵列格式标志(arrayformattingflags)……………………………498 

  18.6.8 数据转换标志(dataconversionflags) ……………………………498 

 18.7 MATLABCOM 工具库 …………………………………………………500

  18.7.1 简 介…………………………………………………………………500

  18.7.2 MWUtil类……………………………………………………………500

  18.7.3 MWFlags类 …………………………………………………………501

  18.7.4 MWStruct类…………………………………………………………502

  18.7.5 MWField类 ………………………………………………………… 505

  18.7.6 MWComplex类………………………………………………………506

  18.7.7 MWSparse类…………………………………………………………506

  18.7.8 MWArg类……………………………………………………………507

  18.7.9 MATLABMWComUtil的枚举类型 ………………………………507

 18.8 安装和发布 MATLABCOM 组件 ……………………………………… 509

 18.9 综合实例……………………………………………………………………510

  18.9.1 实例1:数据转换及数组格式标志的使用 ……………………… 510

  18.9.2 实例2:采用 MWUtil处理varargin输入和varargout输出 …… 514

  18.9.3 实例3:MWStruct和 MWField的操作实例 ……………………… 519

  18.9.4 实例4:MWComplex操作实例 ……………………………………528

  18.9.5 实例5:MWSParse操作实例 ………………………………………532

第19章 C/C++程序通过.NET 配件调用MATLAB程序…… 536

 19.1 本章导读……………………………………………………………………536

 19.2 将 MATLAB程序编译为.NET配件 ……………………………………536

 19.3 在 VisualC++2010中调用.NET配件 ………………………………537

 19.4 VisualC++与 MATLAB之间的数据转换……………………………… 539

 19.5 使用 MWNumericArray操作数值阵列 ………………………………… 540

  19.5.1 数值阵列的类型………………………………………………………540

  19.5.2 C++索引与 MATLAB阵列索引 ………………………………… 541

  19.5.3 实型阵列和复型阵列…………………………………………………541

  19.5.4 创建标量……………………………………………………………542

  19.5.5 创建矢量………………………………………………………………543

  19.5.6 创建矩阵………………………………………………………………545

  19.5.7 创建任意维数的数值阵列…………………………………………547

 19.6 使用 MWCharArray操作字符阵列……………………………………… 549

 19.7 使用 MWLogicalArray操作逻辑阵列 ………………………………… 551

 19.8 使用 MWStructArray操作结构体阵列 ………………………………… 552

 19.9 使用 MWCellArray操作元组阵列 ……………………………………… 553

第20章 将 MATLABM 程序转换为C/C++程序………… 555

 20.1 本章导读……………………………………………………………………555

 20.2 MATLABCoder的功能 …………………………………………………555

 20.3 MATLABCoder对 MATLABM 语言代码的约束 …………………… 556

 20.4 第一个实例…………………………………………………………………557

  20.4.1 实例说明………………………………………………………………557

  20.4.2 基本原理………………………………………………………………558

  20.4.3 代码实现………………………………………………………………559

  20.4.4 实例执行结果…………………………………………………………567

  20.4.5 生成C/C++代码 …………………………………………………569

 20.5 MATLABCoder图形界面 ………………………………………………569

 20.6 codegen命令 ………………………………………………………………571

 20.7 MATLABCoder的典型应用 ……………………………………………573

  20.7.1 将 MATLABM 程序转换为C/C++代码 ……………………… 573

  20.7.2 将 MATLABM 程序转换为 MEX文件……………………………575

  20.7.3 将 MATLABM 程序编译为可执行文件 ………………………… 575

  20.7.4 将 MATLABM 程序编译为动态链接库 ………………………… 576

 20.8 用 MATLABCoder转换后的C/C++代码中的数据类型……………576

  20.8.1 变量类型定义……………………………577

  20.8.2 强制类型转换…………………………………………………………577

  20.8.3 基本类型定义………………………………………………………578

  20.8.4 复数类型………………………………………………………………580

  20.8.5 固定长度变量与可变长度变量………………………………………582

  20.8.6 结构体类型……………………………………………………………587

第六部分 与MATLAB相关的数学库

第21章 C/C++程序调用Matcom矩阵库 ……………………… 593

 21.1 本章导读……………………………………………………………………593

 21.2 Matcom与 MATLAB …………………………………………………… 593

 21.3 安装 Matcom ……………………………………………………………… 593

 21.4 在 VisualC++中使用 MatcomC++矩阵库 ………………………… 595

 21.5 使用 MatcomC++矩阵库的矩阵类 Mm ……………………………… 601

  21.5.1 创建数值矩阵…………………………………………………………601

  21.5.2 创建字符矩阵…………………………………………………………602

  21.5.3 利用下标访问矩阵的元素……………………………………………603

  21.5.4 获取矩阵数据的指针…………………………………………………603

  21.5.5 Mm矩阵对象的初始化………………………………………………604

  21.5.6 Mm矩阵类的几个常用函数…………………………………………605

  21.5.7 MatcomC++矩阵库常量 …………………………………………607

  21.5.8 调用系统函数…………………………………………………………607

 21.6 Matcom矩阵库的图形和图像显示功能………………………………… 609

 21.7 Matcom用于图形显示的常用函数……………………………………… 610

 21.8 Matcom 用于图像显示的常用函数……………………………………… 611

 21.9 Matcom 的应用实例 ………………………………………………………612

  21.9.1 实例1:Matcom Mm矩阵类的创建及使用 ………………………612

  21.9.2 实例2:图形绘制的基本功能演示 …………………………………616

  21.9.3 实例3:利用 Matcom 绘制动态曲线 ………………………………621

  21.9.4 实例4:利用 Matcom 进行图像显示 ……………………………633

  21.9.5 实例5:Matcom 二维和三维曲线绘制综合应用 ………………… 646

第22章 C/C++程序调用 MATLABC++数学库 ……… 660

 22.1 本章导读……………………………………………………………………660

 22.2 MATLABC++数学库 …………………………………………………660

 22.3 在 VisualC++工程中调用 MATLABC++数学库 ………………… 660

 22.4 MATLABC++数学库的使用 …………………………………………663

 22.5 输入和输出 MATLAB阵列……………………………………………… 663

  22.5.1 直接输出到屏幕……………………………………………………663

  22.5.2 MATLABmwArray阵列数据的输入和输出的其他方式……… 664

 22.6 操作 MATLABmwArray阵列 ………………………………………… 668

  22.6.1 创建 MATLABmwArray阵列的操作 …………………………… 668

  22.6.2 采用 MATLABC++数学库操作稀疏矩阵 ………………………671

  22.6.3 MATLABC++数学库对字符阵列的操作……………………… 676

  22.6.4 MATLABC++数学库对元组阵列的操作……………………… 679

  22.6.5 MATLABC++数学库对结构体阵列的操作…………………… 682

  22.6.6 访问 mwArray类中的数据 ………………………………………… 684

  22.6.7 MATLABC++数学库对 MATLAB阵列操作常用的小技巧 … 687

  22.6.8 调用系统函数…………………………………………………………691

参考文献 



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭