Chinaunix首页 | 论坛 | 博客
  • 博客访问: 530465
  • 博文数量: 576
  • 博客积分: 40000
  • 博客等级: 大将
  • 技术积分: 5020
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-13 14:47
文章分类

全部博文(576)

文章存档

2011年(1)

2008年(575)

我的朋友

分类:

2008-10-14 15:11:22

在VC中使用MATLAB C/C++函数库
作者:




MATLAB广泛应用于线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等领域。因此如果在VC中对MATLAB进行调用将大大减少编程的工作量、保证程序的准确性,并且继承了VC++强大的功能,提高开发效率,本文将介绍了在VC中使用MATLAB函数库的具体步骤:

在VC中建立一个项目后:

1.设置:

添加路径:
在project-settings-c/C++-category:-preprocessor-Additional include directories:栏目中添加:
D:\MATLAB6P1\EXTERN\INCLUDE,
D:\MATLAB6P1\EXTERN\INCLUDE\CPP,
D:\MATLAB6P1\EXTERN\LIB lib
在project-settings-c/C++-category:-preprocessor-preprocessor definitions: 栏目中添加:
MSVC,MSWIND
在project-settings-Link-Category-Input-Ignore libraries:栏目中添加:msvcrt.lib

2. 添加头文件:(假设matlab文件为x.m)

#include "matlab.hpp"
#include x.hpp //如果有从.m编译成.cpp的文件x.hpp 和x.cpp;
在x.cpp中添加#include "StdAfx.h"

3.在matlab中的编译方法
用mcc命令转化为c/c++代码,命令行参数如下:
生成c文件: mcc –t –L C x.m
生成c++文件: mcc –t –L Cpp x.m
生成动态链接库函数: mcc –t –W lib:y –T link.lib x.m(y为生成的链接文件名)

4.导入链接库
#pragma comment (lib, "libmatlb.lib")
#pragma comment (lib, "libmx.lib")
#pragma comment (lib, "libmatpm.lib")    // c++ maths library
5.参考代码如下:
double d[] = { 1, 2, 3, 4 };
mwArray A(2, 2, d);

mwArray arrVal,arrVec;
arrVec = eig(&arrVal,A);
double* a = new double[4];
double* b = new double[4];

for (int i=0; i < 4; i++)
{
		a[i] = *(mxGetPr(arrVal.GetData())+i); //正序
		b[i] = *(mxGetPr(arrVec.GetData())+i);//逆序
}
(完)
--------------------next---------------------

freebir7237:
 那是你的 库函数 没 包含进去, ( assist 发表于 2006-1-17 12:52:00)
 
哪位知道power builder 能否调用matlab用vc编的动态连接库呢?谢谢拉! ( joyce_1 发表于 2006-1-13 10:38:00)
 
我在.net 下运行,只要一写出 # include “Matlab.hpp”以后就出现好多关于内部文件中流的错误,不知道是什么原因呢?在.net 下要另设什么吗?
一样的程序在6.0中就可以运行的 ( freebir7237 发表于 2005-8-28 22:32:00)
 
请问你的mwArray是从那里来的!
( luwei0314 发表于 2003-7-31 14:57:00)
 
其实使用matcom更简单,只需要1个.h文件1个.lib文件及3个.dll文件 ( xf7808 发表于 2003-7-14 21:49:00)
 
编译到此处时有错误:
#pragma comment (lib, "libmatlb.lib")
#pragma comment (lib, "libmx.lib")
#pragma comment (lib, "libmatpm.lib")    // c++ maths library
#pragma comment (lib, "libmmfile.lib")
显示:
cannot open file "libmatlb.lib"
请帮忙,多谢! ( pyx 发表于 2003-7-14 11:05:00)
 
.......................................................

--------------------next---------------------

阅读(425) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~