C语言与MATLAB接口:编程与实例

C语言与MATLAB接口:编程与实例
作 者: 李传军
出版社: 北京邮电大学出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: Matlab
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《C语言与MATLAB接口:编程与实例》作者简介

内容简介

本书以简洁的语言、丰富的实例系统地介绍了C语言与MATLAB接口函数(称之为:C-MEX函数)的编程方法。用实例详细地介绍了MATLAB中所提供的数据类型在C-MEX函数中的编程方法。这些数据类型主要包括:双精度(double)以及非双精度(single、uint8、uint16、uint32、uint64、int8、int16、int32、int64)的数值阵列(如:标量、矢量、矩阵及三维阵列)、字符串、structures阵列、cell阵列、sparse阵列等。同时,介绍了如何在C-MEX函数中实现调用MATLAB函数;如何用MATLAB本身所提供的BLAS库函数、LAPACK库函数实现C-MEX函数编程;以及如何用外接IntelMKL库函数实现C-MEX函数编程。并给出用C-MEX函数实现MATLAB中的svd、eig、lu、chol、inv、det等数学函数功能的实例,这些库函数的使用可以明显提高运算速度。同时,本书附录还介绍了在C-MEX函数中的错误语法示例、MEX库函数及MX库函数。本书对C-MEX函数的介绍全面,举例详尽。不仅能够成为MATLAB与MEX混合编程的工程人员的参考书,而且可以作为C语言编程者的参考书,同时也可以作为MATLAB培训的课程教材。

图书目录

1 C-MEX函数介绍

1. 1 MATLAB外部接口概述

1. 1. 1 MEX文件概念

1. 1. 2 C-MEX文件的应用

1. 2 mxArray结构体

1. 3 MATLAB数据类型

1. 4 库函数介绍

1. 4. 1 mx函数库

1. 4. 2 mex函数库

2 编写编译链接C-MEX函数的方法

2. 1 MEX指令

2. 2 建立MEX环境

2. 2. 1 Lcc编译器MATLAB环境配置

2. 2. 2 MSVC 编译器MATLAB环境配置

2. 3 用MATLAB插件在MSVC环境中编写编译链接C-MEX函数

2. 3. 1 MATLAB插件在MSVC环境中的配置

2. 3. 2 C-MEX函数的编写编译链接过程示例

3 C-MEX函数的编写方法

3. 1 C-MEX函数分析

3. 1. 1 C与MATLAB存储方式的区别

3. 1. 2 C-MEX函数的结构

3. 1. 3 编写C-MEX函数的基本流程

3. 2 标量

3. 2. 1 函数介绍

3. 2. 2 双精度实数型标量

3. 2. 3 双精度复数型标量

3. 2. 4 双精度标量

3. 3 矢量

3. 3. 1 函数介绍

3. 3. 2 双精度实数型矢量

3. 3. 3 双精度复数型矢量

3. 3. 4 双精度矢量

3. 4 矩阵

3. 4. 1 函数介绍

3. 4. 2 双精度实数型矩阵

3. 4. 3 双精度复数型矩阵

3. 4. 4 双精度矩阵

3. 5 三维数组

3. 5. 1 函数介绍

3. 5. 2 双精度实数型三维数组

3. 5, 3 双精度复数型三维数组

3. 5. 4 双精度三维数组

3. 6 字符串

3. 6. 1 函数介绍

3. 6. 2 实例详解

3. 7 非双精度数据

3. 7. 1 非双精度数据分类

3. 7. 2 函数介绍

3. 7. 3 实例详解

3. 8 调用MATLAB函数

3. 8. 1 函数介绍

3. 8. 2 实例详解

3. 9 Structures阵列

3. 9. 1 结构体介绍

3. 9. 2 函数介绍

3. 9. 3 实例详解

3. 10 Cell阵列

3. 10. 1 单元阵列介绍

3. 10. 2 函数介绍

3. 10. 3 实例详解

3. 11 Sparse阵列

3. 11. 1 稀疏阵列介绍

3. 11. 2 函数介绍

3. 11. 3 实例详解

4 C-MEX函数应用举例

4. 1 复数的处理方法

4. 1. 1 复数的fortran结构

4. 1. 2 mat2fort函数

4. 1. 3 fort2mat函数

4. 1. 4 mxArray2fort函数

4. 1. 5 fort2mxArray函数

4. 2 实现MATLAB中sum函数功能

4. 2. 1 双精度实数型

4. 2. 2 双精度复数型

4. 3 实现MATLAB中赋值功能

4. 3. 1 双精度实数型

4. 3. 2 双精度复数型

4. 4 实现MATLAB中z=surfl x. *y 功能

4. 4. 1 双精度实数型

4. 4. 2 双精度复数型

4. 5 实现MATLAB中z=alpha*x y功能

4. 5. 1 双精度实数型

4. 5. 2 双精度复数型

5 利用BLAS函数编写C-MEX函数

5. 1 BLAS函数介绍

5. 2 用BLAS实现MATLAB中sum函数功能

5. 2. 1 用dasum函数实现双精度实数型阵列sum函数功能

5. 2. 2 用dasum函数实现双精度复数型阵列sum函数功能

5. 3 用BLAS实现MATLAB中赋值功能

5. 3. 1 用dcopy函数实现双精度实数型阵列赋值功能

5. 3. 2 用zcopy函数及复数指针实现双精度复数型阵列赋值功能

5. 4 用BLAS实现MATLAB中z=sum x. *y 功能

5. 4. 1 用ddot函数实现双精度实数型矢量的z=sum x. *y 功能

5. 4. 2 用zdotu函数及复数指针实现双精度复数型矢量的z=sam x. *y 功能

5. 5 用BLAS实现MATLAB中z=alpha*x y功能

5. 5. 1 用daxpy函数实现双精度实数型阵列的z=alpha*x y功能

5. 5. 2 用zaxpy函数及复数指针实现双精度复数型阵列的z=alpha*x y功能

6 利用LAPACK函数编写C-MEX函数

6. 1 LAPACK函数介绍

6. 2 用LAPACK实现MATLAB中矩阵求逆

6. 2. 1 用dgetrf和dgetri函数实现双精度实数型矩阵求逆

6. 2. 2 用zgetrf. zgetri函数及复数指针实现双精度复数型矩阵求逆

6. 3 用LAPACK实现MATLAB中LU分解

6. 3. 1 用dzetrf函数实现双精度实数型矩阵LU分解

6. 3. 2 用zgetrf函数及复数指针实现双精度复数型矩阵LU分解

6. 4 用LAPACK实现MATLAB中SVD分解

6. 4. 1 用d8esvd函数实现双精度实数型矩阵SVD分解

6. 4. 2 用zgesvd函数及复数指针实现双精度复数型矩阵SVD分解

6. 5 用LAPACK实现MATLAB中特征分解

6. 5. 1 用dgeev函数实现双精度实数型矩阵特征分解

6. 5. 2 用zgeev函数及复数指针实现双精度复数型矩阵特征分解

6. 6 用LAPACK实现MATLAB中del功能

6. 6. 1 用d8etrf函数实现双精度实数型矩阵det功能

6. 6. 2 用zgetrf函数及复数指针实现双精度复数型矩阵det功能

6. 7 用LAPACK实现MATLAB中chol分解

6. 7. 1 用dpotrf函数实现双精度实数型矩阵chol分解

6. 7. 2 用zpotrf函数及复数指针实现双精度复数型矩阵chol分解

7 灵活编写C-MEX函数的方法

7. 1 复数complex结构

7. 1. 1 双精度复数complex结构

7. 1. 2 mat2complex函数

7. 1. 3 complex2mat函数

7. 1. 4 mxArray2complex函数

7. 1. 5 complex2mxArray函数

7. 2 用zdotu函数及复数结构指针实现MATLAB中z=sum x. *y 功能

7. 2. 1 程序代码

7. 2. 2 分析

7. 2. 3 编译链接与测试

7. 3 用zaxpy函数及复数结构指针实现MATLAB中z=alpha*x y功能

7. 3. 1 程序代码

7. 3. 2 分析

7. 3. 3 编译链接与测试

7. 4 建立自已的函数库

8 用INTELMKL编写C-MEX函数

8. 1 IntelMKL介绍

8. 2 IntelMKL库函数的链接方法

8. 2. 1 静态链接

8. 2. 2 动态链接

8. 3 用IntelMKL及复数结构指针实现MATLAB中2=sum x. *y 功能

8. 4 用IntelMKL及复数结构指针实现MATLAB中z=alpha*x y功能

附录

附录1:C-MEX函数的语法错误示例

附录2:MX库函数

附录3:MEX库函数

参考文献