**************************************************************************** >>> 异常处理函数
****************************************************************************
************************************************************************** >>> 矩阵生成函数
****************************************************************************
Mm DLLI cauchy(Mm x);
Mm DLLX cauchy(Mm x, Mm y); Mm DLLI compan(cMm x); Mm DLLI gallery(Mm n); Mm DLLI hadamard(Mm n); Mm DLLI hankel(Mm c); Mm DLLI hankel(Mm c, Mm r); Mm DLLI hilb(Mm n); Mm DLLI invhilb(Mm n);
Mm field, cMm v);; const { return i0-1+(Mm*)pr; }x_ab] Mm DLLI magic(Mm n); Mm DLLI pascalM(cMm n); Mm DLLI pascalM(Mm n, Mm r); Mm DLLI rosser(); Mm DLLI toeplitz(Mm c); Mm DLLI toeplitz(Mm c, Mm r); Mm DLLI vander(Mm x); Mm DLLI wilkinson(cMm n);
**************************************************************************** >>> 操作系统资源函数
*********************************************************************************** Mm DLLI cd(); Mm DLLI cd();
Mm DLLI cd(cMm dir1); Mm DLLI chdir(cMm dir1); Mm DLLI copyfile(cMm src);
Mm DLLI copyfile(cMm src, cMm dest); Mm DLLI deleteM(cMm filename);
Mm DLLI deleteM(cMm filename);eld, cMm v);; const { return i0-1+(Mm*)pr; }x_ab]
Mm DLLI dos(cMm command);
Mm DLLI dos(cMm command, i_o_t, Mm& status, Mm& sout); Mm DLLI dos(cMm command, cMm echo);
Mm DLLI dos(cMm command, cMm echo, i_o_t, Mm& status, Mm& sout); Mm DLLI fclose(cMm fid); Mm DLLI feof(cMm fid); Mm DLLI ferror(cMm fid);
Mm DLLI ferror(cMm fid, cMm clear);
Mm DLLI ferror(cMm fid, cMm clear, i_o_t, Mm& msg, Mm& errnum); Mm DLLI ferror(cMm fid, i_o_t, Mm& msg, Mm& errnum); Mm DLLI fflush(cMm fid); Mm DLLI fgetl(cMm fid); Mm DLLI fgets(cMm fid);
Mm DLLI fgets(cMm fid, cMm nchar); Mm DLLI filesep();
Mm DLLI fopen(cMm filename);
Mm DLLI fopen(cMm filename, cMm permission);
Mm DLLI fopen(cMm filename, cMm permission, cMm machine);
Mm DLLI fopen(cMm filename, cMm permission, cMm machine, i_o_t, Mm& fid, Mm& msg); msg);I deleteM(cMm filename);eld, cMm v);; const { return i0-1+(Mm*)pr; }x_ab] Mm DLLI fopen(cMm filename, cMm permission, i_o_t, Mm& fid, Mm& msg); Mm DLLI fopen(cMm filename, i_o_t, Mm& fid, Mm& msg);
Mm DLLI fopen(cMm fid, i_o_t, Mm& filename, Mm& permission, Mm& machine); Mm DLLI fprintf(cMm fid, cMm format1);
Mm DLLI fprintf(cMm fid, cMm format1, cMm varargin); Mm DLLI fprintf(cMm x); Mm DLLI fread(cMm fid);
Mm DLLI fread(cMm fid, cMm size);
Mm DLLI fread(cMm fid, cMm size, cMm precision);
Mm DLLI fread(cMm fid, cMm size, cMm precision, cMm skip); Mm DLLI fread(cMm fid, cMm size, cMm precision, cMm skip, c
Matlab6.1与VC6混合编程小结 --(1)编程环境设置- -
『转载』
虽然现在Matlab与VC的版本都不同了,但是还是有借鉴作用的
一.编程环境 1. 开发时必需的文件
%Matlab%\\extern 整个目录是开发的必需目录 %Matlab%\\extern\\include\\*.h 目录 %Matlab%\\extern\\include\\cpp\\*.hpp 目录 %Matlab%\\extern\\lib\\win32\\*.lib目录
%Matlab%\\extern\\lib\\win32\\microsoft\\msvc60\\*.lib目录 2. VC6的设置
○1设置include搜索目录,
加入c/c++ math和c/c++ graphics的头文件 Tools->Options->Directories->Include files 中加入: %Matlab%\\extern\\include\\cpp\\和%Matlab%\\extern\\include\\ ○2定义预处理宏MSVC、MSWIND
Project->Setting->C/C++页中的Category->Preprocessor 中加入 MSVC、MSWIND、 ○3设置运行时动态链结库
Project->Setting->C/C++页中的Category->Code Generation 中选择Multithreaded DLL。 ○4加入lib文件
Project ? Add to Project ?Files... 中加入:
%Matlab%\\extern\\lib\\win32\\microsoft\\msvc60\\*.lib 以及 %Matlab%\\extern\\lib\\win32\\libmatpm.lib 3. 运行时(发布)所需文件
%MATLAB%\\extern\\lib\\win32\\mglinstaller.exe 所生成的*.dll
Mat与VC混编小结 --(2)调用C/C++ Math Liabrary函数- -
『转载』
Matlab6.1与VC6混合编程的方式很多: 先介绍第一种(排名无先后):
直接调用Matlab 自带的C/C++ Math Liabrary的函数,
首先要按帖子(1)设置编程环境
另外:在Project->Setting->Link->input页中 的Ignore Library中加入LIBCMTD 下面不废话,给出一段例子,
{下面的例子在Win32 Console Application 中调试通过 其它的方式略有不同。} ......
#include \ //C++方式 #include \ //C方式 #include \ //std库函数头 ......
double data[] = {1,2,3,4,5,6};
mwArray z(2,3,data); //初始化一个2*3的矩阵 mwArray c; //定义个矩阵类 try{
c = pinv(z); //调用C++ Math Liabrary的函数Pinv伪逆函数 }
catch(mwException &ex){ mwDisplayException(ex); }
double *p;
p = mxGetPr(c.GetData()); //将结果赋于p数组,用C进一步处理 int i;
for(i=0;i<6;i++)
printf(\\ //显示结果 ......
Matlab与VC混编小结 --(2)以DLL方式调用M- -
『转载』
Matlab6.1与VC6混合编程的方式很多:
用Matlab处理复杂的算法,用VC、VB甚至Delphi来处理GUI,比较爽。 以DLL方式调用M文件中的函数,就是重要的手段。
首先要按帖子Matlab6.1与VC6混合编程小结 (1)中所说的设置编程环境
下面不废话,给出一段例子, :假设有M文件:mfile.m
其中有Function1、Function2......。 1:在Matlab6.x中使用命令:
mcc -B sgl -t -W libhg:a -T link:lib mfile 其中:a是相生成的dll文件的名字 a.dll mfile是m文件的名字mfile.m
-B sgl 表示用到了Graphics库(在matlab中help MCC)
2:将生成的a.dll,a.lib,a.h放在工程目录下。 3:在工程中加入a.lib,并#include \。 4:按以下格式调用: aInitialize(); //初始化
mlfFunction1(); //对应于Function1 mlfFunction2(); //对应于Function2 ......
aTerminate(); //释放
注意:a.h中的函数的参数和返回值大多为矩阵形式,使用方法见贴(2)
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库matlab与vc混编(5)在线全文阅读。
相关推荐: