C++调用matlab数学函数问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 01:36:40
下面是书上说的实现方法:

Visual C++中使用MATLAB语言C,C++数学函数库

MATLAB开发环境的C,C++数学函数库以mwArray结构体为数据核心,使用mcc命令将M文件转换成的C/C++文件可以直接在Viusal C++开发环境中使用,但是编译后的C,C++文件一般程序冗长,代码可读性较差。在熟练掌握C, C++数学函数库的基础上,读者可以使用mwArray结构体自行编写基于应用程序接口(API)函数库C, C++数学库的C/C++文件,可以极大优化程序代码,减少程序代码存储空间,提高程序代码的执行效率和执行速度。在下文的讲述中,将通过一个简单实例来演示如何利用mcc命令创建独立与MATLAB平台运行的exe文件。

首先使用MATLAB的M语言建立用户所需要的特定功能M 文件,在这里,为了简单而言,建立一个实现魔方阵功能的M文件magicCreat.m。

function y = magicCreat(n)
y = magic(n)

然后从%matlabroot%\ extern\examples\compiler (%matlabroot%为读者计算机系统中MATLAB的安装路径,本文中为

C:\Program Files\MATLAB\R2006a\extern\examples\compiler)

路径下拷贝main_for_lib.c和main_for_lib.h.到当前的工作路径下,以便mcc编译命令调用。然后创建调用magicCreat.m文件的C语言程序如下:

#include "stdio.h"
#include "math.h"
#include "libPkg.h" //编译建立的库头文件
main( int argc, char **argv )
{
mxArray *N; /* 输入变量矩阵指针 */
mxArray *R = NULL; /* 结果矩

怎么会找不到呢?安装目录找对了吗?我的目录是:
D:\program files\MATLAB\R2007a\extern\examples\compiler

楼主的matlab是哪版,貌似05b以后就不能在c中直接调用MATLAB数学函数库了。
能用的只有在c中创建一个matlab engine,通过调用engine实现条用相应的数学函数。不过很慢,不建议使用。

搜索该头文件,复制到你的工程中去,然后添加。再编译试试。