⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vc调用matlab.txt

📁 给出了如何从vc里调用matlab文件、命令的详细设置过程和例子
💻 TXT
字号:
目前在7.1.0和7.0.0版本上运行正确。还有其他的版本等待尝试,有的不成功

过程:

将m文件放到     \\MATLAB6p5\work\  目录下即可。
1.
本程序加入了matlab和openCV的库,所以
在Visual Studio的Tools->Options->Directories中设置include files和library files为库文件夹所在的路径:
例如D:\MATLAB6P5\EXTERN\INCLUDE    
    D:\MATLAB6P5\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
    F:\RECENTWORK\OPENCV\LIB

D:\program\Matlab\EXTERN\INCLUDE 
D:\program\Matlab\EXTERN\LIB\WIN32\MICROSOFT\MSVC60
最好直接复制

2.
将libmx.lib libmex.lib libeng.lib libmat.lib 四个库文件添加到
vc的库文件夹下:D:\program\visual C++\VC98\Lib

修改动态连接库:link->修改一下

每次调用时必须先关闭Matlab Command Window

3.将需要调用的matlab文件放到work目录下
	(是否有其他办法,但是目前只有这种办法)



/*不是必须的,黄轩工程专用
附录(openCV用法):
LIB和BIN文件夹中已包含了CIP函数库2.1的内容。
拷贝LIB文件夹(.h,.lib)到工程中,将BIN文件夹中的dll文件拷贝到exe文件所在目录
在Visual Studio的Tools->Options->Directories中设置include files和library files为库文件夹所在的路径。
在Project->Settings->Link中的Object/Library modules加入:
	cv.lib highgui.lib cxcore.lib tiff.lib satimg.lib 
在程序文件开头加入 #include "satimg.h"

*/



vc调用matlab例子:

matlab文件格式
function [PSNR,Q,SVD,SSIM] = Evalue(orgfile,profile)  %orifile='lena.bmp'  含单引号
matlab读写
I=imread('lena.bmp')
imwrite(I,profile);

c语言编写格式 
头文件中包括
#include "engine.h"
Engine *ep;		 //定义Matlab引擎变量 
添加lib文件
libmx.lib libmex.lib libeng.lib libmat.lib 

OnInitDialog()
{
	if (!(ep=engOpen("\0")))  //打开Matlab引擎
	{
		fprintf(stderr, "\n Matlab引擎启动失败!\n");
		MessageBox("Matlab引擎启动失败!","Matlab引擎 ",		
			MB_OK |MB_ICONERROR);
		exit(-1);
	}
	engSetVisible(ep,1);		//隐藏引擎
}

CImageEvaluationDlg::~CImageEvaluationDlg()	//析构函数
{
	engClose(ep);				//关闭引擎
}

engEvalString(ep, "[SNR,PSNR,Q]=measure('"+orgfile+"','"+profile+"')");//执行命令
注意:如果orgfile字符串中有'会有匹配错误,如F:\others'work\....会出错


编程注意:
1.#include"engine.h"
2. Engine *ep;	//定义引擎
		//要开启引擎

   mxArray *T=NULL;

   mxDestroyArray(T);//调用完后要销毁存储变量
   engEvalString(ep,"close");//关闭

3.mxSetName();函数不可用
每次调用时必须先关闭Matlab Command Window

4.调试时复数要分成2次读出来。


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -