VS调用matlab(win7环境)

合集下载

VB调用MATLAB步骤

VB调用MATLAB步骤
Dim c As Variant ‘输出参数
a = Val(Text1.Text)
b = Val(Text2.Text)
Call hh.myadd(1, c, a, b) 'myadd为MATLAB中的函数名,1为输出变量个数,c为输出变量定义为variant型,a,b为输入变量,定义为double型
Y=a+b;
VB程序如下:
Private Sub Command1_Click()
Dim hh As New ABC.ab 'ABC 为COMPONENT NAME,ab为class name
Dim a As Double ‘输入参数
Dim b As Double ‘输入参数
3.matlab会列出所有电脑上所有的编译器,选择Microsoft Visual C/C++ version 6.0
4.The default location for Microsoft Visual C/C++ compilers is C:\Program Files\Microsoft Visual Studio, but that directory does not exist on this machine
Use C:\Program Files\Microsoft Visual Studio anyway [y]/n? 选择n
5.Please enter the location of your compiler: [C:\Program Files\Microsoft Visual Studio] 键入vc++6的安装位置E:\INSTALLBACK\Microsoft Visual Studio vc6.0

vs调用matlab完整步骤

vs调用matlab完整步骤
网络错误503请刷新页面重试持续报错请尝试更换浏览器或网络环境
vs调用 matlab完整步骤
1.安装TDM-G包,安装Microsoft Windows SDK以Matlab Compiler 3.在matlab中 使用 mex -setup 以及mbuild -setup配置好编译器环境 4. 执行语句:“setenv('MW_MINGW64_LOC','C:\TDM-GCC-64') mcc -W cpplib:xxxlib名 -T link:lib matlab函数文件名.m“ 生成 xxx.h xxx.dll 和xxx.lib三个文件 5.将上述三个文件放到vs工程中(注意用x64环境) 6.vs配置:VC++目录 包含目录R2019b\extern\include 库目录extern\lib\win64\microsoft 链接器输入→附加依赖项 xxx.lib libmx.lib ibmat.lib mclmcr.lib mclmcrrt.lib 7.包含.h头文件,依次调用mclInitializeApplication() ...Initialize() 此处可以调用matlab里的函数,若有参数,参数定义为mwArray a,a可以矩阵、字符串 最后调用(可无) mclWaitForFiguresToDie(NULL); ....Terminate(); mclTerminateApplication();

VS2010调用Matlab引擎的简单例子

VS2010调用Matlab引擎的简单例子
cin.get();
engClose(ep); //关闭Matlab引擎。
}
5
6
无法调试。
mxArray*xx =mxCreateDoubleMatrix(1,N,mxREAL);
mxArray*yy=mxCreateDoubleMatrix(1,N,mxREAL); //同上。
memcpy(mxGetPr(xx), x, N*sizeof(double)); //将数组x复制到mxarray数组xx中。
using namespacestd;
intmain()
{
constintN = 50;
double x[N],y[N];
intj = 1;
for (inti=0;i<N;i++) //计算数组x和y
{
x[i] = (i+1);
y[i] = sin(x[i]) + j * log(x[i]); //产生-之间的随机数赋给xx[i];
memcpy(mxGetPr(yy), y, N*sizeof(double)); //将数组x复制到mxarray数组yy中。
engPutVariable(ep, "xx",xx); //将mxArray数组xx写入到Matlab工作空间,命名为xx。
engPutVariable(ep, "yy",yy); //将mxArray数组yy写入到Matlab工作空间,命名为yy。
或者直接从工具栏平台的下拉箭头下进入:
(2)增加x64平台
确定,得到如下结果。
3
项目属性——》VC++目录,如图:
包含目录增加:C:\Program Files\MATLAB\R2012b\extern\include

VS2010调用Matlab2012b引擎的设置方法

VS2010调用Matlab2012b引擎的设置方法

VS2010调用Matlab2012b引擎最近需要把matlab和VS结合起来使用,初来乍到出现了很多的麻烦,网上的资料大都也是matlab较低一些版本的,经过多方查找资料后,得以成功,现在总结出来,以方便读者们,避免走些弯路。

大家一起进步本人的平台是:win7旗舰版x64+VS2010(中文版)+Matlab2012b操作流程:1添加系统环境变量Win7的方法是在计算机中右击属性,然后选择左边的高级系统设置然后接着找到环境变量,设置系统环境变量,在系统环境变量中选择编辑,保持原有的内容不变,把光变移动到最后面,把matlab的地址写进去。

例如本人的安装目录是:D:\Program Files(86)\MATLAB\R2012b\bin\win64;,具体的位置由安装位置决定。

然后重新启动一下电脑,让刚刚设置的环境变量生效。

2在VS中新建一个编译平台(1)进入“配置管理器”由于本人的笔记本是64位的,所以不能用32位的系统编译平台,这点倒是废了很大的功夫,终于在网上找到了方法,再次表示感谢。

链接为/view/f87eee58804d2b160b4ec05b.html。

或者直接从工具栏平台的下拉箭头下进入:(2)增加x64平台确定,得到如下结果。

3添加头文件和库文件剩下的就是很常规的了,右击项目---属性---项目属性——》VC++目录,如图:包含目录增加:D:\Program Files(x86)\MATLAB\R2012b\extern\include库目录增加:d:\Program Files(x86)\MATLAB\R2012b\extern\lib\win64\microsoft 4. 此时还剩下最后一项设置,首先打开菜单项目->项目属性页选择配置属性->链接器->调试->生成调试信息改为是。

然后重新运行即可!!下面就可以编辑代码好好加油啦。

VS(VC)与Matlab联合编程步骤

VS(VC)与Matlab联合编程步骤

联合编程的操作步骤首先,我先说一下我所安装的环境,我的电脑是Win7(X64)的,我安装的Matlab是Matlab R2010b和VS2010,还有Matcom4.5我Matlab的安装目录:C:\Program Files\MATLAB我VS的安装目录:F:\Program Files (x86)\Microsoft Visual Studio 10.0一、Matlab环境配置在Matlab的Command Windows下输入命令:mbuild -setup然后输入命令:mex–setup 方法同上mbuild–setup一样。

在Matlab中编写想要实现的.m文件。

我以最简单的.m文件为例:function [c]=Myadd(a,b)c=a+b;在命令窗口编写:会在当前目录下生成如下图中显示的文件:其中重点会用到的是.cpp、.h、,dll、.lib文件。

在头文件的最后,你可以看到下面的内容:externLIB_myadd_CPP_API void MW_CALL_CONV myadd(intnargout, mwArray& c, constmwArray& a, constmwArray& b);这就是myadd的C函数的声明。

nargout表示输出变量的个数,其他就是对应了m函数的几个变量。

二、Matcom设置准备工作在Matcom中编写函数文件:保存后,点击compile to DLL,生成DLL文件默认在matcom安装目录debug 文件夹下面。

会生成如下图所示的文件:主要用到的还是.dll、.h、.lib等文件。

不过在VS中调用时,需要将matcom安装目录lib文件夹下的matlib.h和v4501.lib拷贝到工程文件夹下。

并且要将翻译生产的文件(.dll、.h、.lib等文件)也复制粘贴到工程目录下。

且在stdafx.h中要包含matlib.h。

VB6.0调用matlab生成的dll文件

VB6.0调用matlab生成的dll文件

VB6.0调用matlab生成的dll文件环境:win7 64位,matlab2010b,Vb6.0一、设置环境变量右键计算机——属性——高级系统设置——环境变量,在用户变量和系统变量中均添加如下路径:路径名为path 值为”C:\Program Files\MATLAB\R2010b\bin\win64”(matlab安装路径),重启计算机。

二、编写m文件,注意以function开头三、在matlab中设置编译环境1.在matlab命令窗口中输入mex –setup,选择n,然后在弹出的众多编译器中选择一个,最好选择VC++系列(在进行这一步时,现在电脑上安装VC的编译器,如VC++6.0、Visual Studio,注意要安装英文版),接下来一直选择y,直至看见Done……,证明这一步成功了;2.接下来输入么build –setup,接下来步骤与1相似,直至看见Done……。

四、进行编译,生成dll文件1.在matlab窗口中输入deploytool,在弹出的窗口中,name随便填,location选择默认即可,Target选择倒数第二项:Generic COM Component,单击OK;2.选择Add class,填写class name,单击Add files,选择所需编译的m文件,然后单击build按钮,等待编译结束,这是会看到生成的文件夹中含distrib这个文件夹,所需的dll文件即在里面。

五、注册dll开一个dos窗口(在开始里输入运行即可),在dos窗口中输入:cd/d /runtime/win64,回车,接着输入mwregsvr mwcomutil.dll,即对mwcomutil.dll 进行注册(这个dll是matlab下作的任何com组件都要用到的dll)。

六、在vb6.0中调用生成的dll文件1.打开vb6.0,点击工程——引用——浏览,找到放置dll文件处,选择,点击确定;2.vb6.0命令行处应写:Dim myplot As plot.plot1Set myplot = New plot.plot1……Call myplot.plot1(str, strname, xx5, yy2, y)(说明:其中myplot为自己取的名字,plot为matlab编译dll 文件时的class name,plot1为源文件m文件的名字)。

VC调用matlab的步骤

数据拟合的关键步骤数据拟合的好坏与模型是否能够成功有很大的关系,因此在数据拟合上,该软件库使用了比较成熟的数据拟合算法,即采用比较权威的高效计算软件Matlab6.1中的数据拟合函数进行拟合。

对于在Visual C++中调用Matlab应用程序接口,关键在于设置编译环境和使用正确的调用规则,然后,在发布软件时携带必要的动态连接库就可以保证程序的独立性[10]。

1、设置Visual C++编译环境对于调用Matlab的应用程序来说,只要保证程序的编译路径中包含Matlab 的目录下的Extern\Include目录,然后在程序中添加libmx.lib、libmmfile.lib、libmex.lib和libmatlb.lib即可[14]使用Matlab提供的高效算法。

而针对于Visual C++6.0来说,具体设置如下:图3.1 选项目录属性页第一步:打开应用程序工程后,在‘工具’菜单下选择‘选项’选单,将弹出选项对话框,选择其中的‘目录’属性页,如图3.1所示,在其中的Showdirectories for下拉式选项框中分别选择Include Files和Library Files,在下部的编辑框中输入以下路径:Matlab根目录\EXTERN\INCLUDEMatlab根目录\EXTERN\LIB然后选确定按钮。

第二步:选择下拉菜单Project中的菜单项Add To Project>>Files,将Matlab根目录\\extern\lib\win32\microsoft\msvc60下的四个lib文件:libmx.lib、libmmfile.lib、libmex.lib、libmatlb.lib添加到工程中。

完成上述工作后,就可以在Visual C++中调用Matlab数学函数及计算引擎了。

2 、Matlab应用程序接口调用规范在需要调用Matlab应用程序接口的单元文件.Cpp开头添加#include “Matlab.h”语句,然后在程序实现部分调用Matlab函数。

MATLAB2012b与vs2010相互调用时的编译环境设置

MATLAB2012b与vs2010(vc++9.0)交叉调用时的编译环境设置不会游泳的鱼 于2013年11月在科研和学习中,经常遇到MATLAB运行比较慢,而VC++又需要所有工作都由自己从头做起的情况。

那么,在VC++和MATLAB中进行交叉调用就成为一种能够博采众长的好方法。

但是,如果要实现MATALB 和VC++之间的相互调用,必须要对两者的编译环境进行一些必要的设置。

目前网络上公开的相关资料都是针对旧版本的MATLAB和VC++编译器进行设置,本文依据笔者亲自实验的结果介绍对MATLAB2012b和VS2010进行设置的说明。

考虑到WIN7, 8系统(64位)使用的增加,本文在VS2010中特别标注了x64系统(64位)与x86系统(32位)在设置上的区别。

第一部分:MATLAB 2012b的编译环境设置首先,确保本机已经正确安装MATLAB2012b 和Visual Studio 2010 (旗舰版) 且包含VC++组件(默认版本9.0),并且获得全部使用授权。

其次, 在MATLAB 2012b中安装mbuild组件。

(1)在MATLAB 2012b的命令窗口中键入:mbuild –setup‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ Welcome to mbuild ‐setup. This utility will help you set upa default compiler. For a list of supported compilers, see/support/compilers/R2012b/win32.htmlPlease choose your compiler for building shared libraries or COM components:Would you like mbuild to locate installed compilers [y]/n?‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐ (2) 键入y并回车,MATLAB会显示当前系统已经安装的C和C++编译器。

Windows7系统如何正确安装Matlab7.0

Windows 7安装Matlab7.0方法1.首先更改电脑的主题为Windows 7 Basic桌面右键→个性化→Windows 7 Basic2.更改环境变量配置:右键我的电脑(计算机)【注意:不要点击快捷方式】→属性→高级系统设置→在高级选项卡下环境变量→在系统变量中,把TEMP,TMP变量更改为C:\TEMP和C:\TMP(也可以自定义自己的安装位置,如果要安装在D盘则把C改为D)【注意:记住原来的环境变量:%USERPROFILE%\AppData\Local\Temp(TMP)】3.在C盘下建立一个临时文件夹TEMP【若上一个步骤是选的环境变量是D盘则在D盘内建立】4. 将Matlab 7.0 解压(解压至与TEMP文件夹所在的盘里)5.双击打开setup.exe6.在框里输入注册码,直接点击下一步安装完毕。

这里提供一个注册码:13-22955-32678-26249-06848-40366-39620-03472-09765-20949-30945-19673-43738-38950-44 5487.安装完毕后打开可能会出现不兼容的现象:出现错误代码:runtime errorprogram:d:\MATLAB\bin\win32\MATLAB.exethis application has requested the runtime to terminate it in an unusual way. please contact the application's support team for more information解决方法:右键Matlab(桌面快捷方式)→属性→兼容性选项卡→勾选以兼容模式运行这个程序→选中Windows Vista8.最后可以把主题和环境变量该回原来的就OK了。

VS 2010调用matlab 2010

//typedef CHAR16_T char16_t; 这是修改前的语句 typedef unsigned short char16_t;
再次编译,运行程序如下:
手把手教你学 VS 2010 调用 MATLAB 函数
点击“plot”按钮,就绘制出一个正弦曲线。
好了,先讲到这里吧。没来的急检查,先发出来吧!要是还有疑问,请加我的 QQ 群吧: 128229028。记住啊:Work time, no disturbance. 祝大家在学习编程的里程中一帆风顺!
点击“环境变量”按钮,出现下页的对话框。点击系统变量下得新建按钮,弹出“编辑系统变 量对话框” , 假设 VS 装在 D 盘, 变量名随便取一个, 变量值设置为 “D:\Program Files\Microsoft Visual
手把手教你学 VS 2010 调用 MATLAB 函数
Studio 10.0\VC\bin” (以实际的编译器位置为准哦! ) 。完成后点击确定。
4. 动态库调用示例 新建一个工程,工程名:test,建立一个基于对话框的程序。对话框上加一个按钮,取名“plot” 。 在 testmtDlg.cpp 文件中加入如下标灰色背景的代码。
#include "stdafx.h" #include "testmt.h" #include "testmtDlg.h" #include "afxdialogex.h" #include "test.h" //#pragma comment(lib,"libmx.lib") //#pragma comment(lib,"libmat.lib") //#pragma comment(lib,"libeng.lib") #pragma comment(lib,"mclmcrrt.lib") #pragma comment(lib,"test.lib") ……………….. BOOL CtestmtDlg::OnInitDialog() {
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

VS 2010调用matlab 2010自定义函数
最近在网上查找相关VS2010调用matlab2010的函数,实在是太少了。

在此抛砖引玉了,把自己的学习过程和大家分享一下吧。

这里使用的方法是先将matlab的xx.m文件编译为动态库,然后在VS中以静态的方式链接到动态库文件(当然,动态估计也是可以的,可以试下哦!)。

假设你的机子是win7的系统,并已经安装了VS2010和matlab2010,并且之前没有做过任何设置。

下边讲一下从头到尾的操作过程吧:1.配置matlab编译环境
打开matlab。

在命令行中输入“mbuild –setup”,输入过程如下,需要输入的选项已经用蓝色标出了:
>> mbuild -setup
Please choose your compiler for building standalone MATLAB applications:
Would you like mbuild to locate installed compilers [y]/n? n
Select a compiler:
[1] Lcc-win32 C 2.4.1
[2] Microsoft Visual C++ 6.0
[3] Microsoft Visual C++ 2005 SP1
[4] Microsoft Visual C++ 2008 Express
[5] Microsoft Visual C++ 2008 SP1
[0] None
Compiler: 5
The default location for Microsoft Visual C++ 2008 SP1 compilers is C:\Program Files\Microsoft Visual Studio 9.0,
but that directory does not exist on this machine.
Use C:\Program Files\Microsoft Visual Studio 9.0 anyway [y]/n? n
Location: C:\Program Files\Microsoft Visual Studio 10.0
Are these correct [y]/n? y
2. .m文件编译示例
准备好.m源文件,文件名“test.m”如下,没来得急改名字,其实实现的是画正弦曲线的功能。

% file name: test.m
function test(x)
% UNTITLED Summary of this function goes here
% Detailed explanation goes here
t=0:0.001:x;
y=sin(2*pi*50*t);
plot(t,y);
end
在matlab命令行中输入deploytool命令,弹出对话框,填写内容如下:
点击ok后,出现下面的界面。

点击Add files将test.m添加入工程中。

点击按钮,然后我们需要的动态库生成了。

在任意一个文件上点击右键,选择Locate on Disk,就可以找到生成的文件了。

这几个文件就是需要在VS里边用的文件,具体怎么用看下边吧。

3.配置VS的目录选项
建立一个新项目,然后对项目的文件路径进行设置见下。

如果不建立新工程,看不到项目→属性菜单项。

A) 在项目→属性对话框中填写包含目录见下表。

其中第一个目录“E:\matlab\test\distrib”是编译生成test.h,test.lib和test.dll的目录。

可以将test.h和test.lib拷贝到VS工程目录中,就不需要添加这个包含目录了。

test.dll文件是动态库文件,必须拷贝到工程生成exe文件的目录。

B)库文件目录设置。

这个目录是需要加载库文件的目录也是从MATLAB安装目录下边选择的。

因为刚开始搞不清楚都需要哪些,所以加的有点多。

更准确的设置,还没搞清楚,大家将就着点吧。

反正现在的设置也是可用的,以后自己研究吧。

记住要按照自己机器上安装matlab的路径进行设置,
不要搞错了。

4.动态库调用示例
新建一个工程,工程名:test,建立一个基于对话框的程序。

对话框上加一个按钮,取名“plot”。

在testmtDlg.cpp文件中加入如下标灰色背景的代码。

#include"stdafx.h"
#include"testmt.h"
#include"testmtDlg.h"
#include"afxdialogex.h"
#include"test.h"
//#pragma comment(lib,"libmx.lib")
//#pragma comment(lib,"libmat.lib")
//#pragma comment(lib,"libeng.lib")
#pragma comment(lib,"mclmcrrt.lib")
#pragma comment(lib,"test.lib")
………………..
BOOL CtestmtDlg::OnInitDialog()
{
……………………………..
// TODO: 在此添加额外的初始化代码
testInitialize();
return TRUE;
}
……………………………..
void CtestmtDlg::OnBnClickedButton1()
{
//这是添加的按钮的消息处理
// TODO: 在此添加控件通知处理程序代码
double x = 0.1;
mwArray t(0.1);
//mwArray t(1,0.1, mxDOUBLE_CLASS);
//t = mxCreateDoubleMatrix(1,1,mxREAL);
//memcpy(mxGetPr(t),&x,sizeof(double));
test(t);
}
………………………
void CtestmtDlg::OnDestroy()
{
CDialogEx::OnDestroy();
// TODO: 在此处添加消息处理程序代码
testTerminate();
}
编译程序时,出了点小问题,提示matrix.h文件中char16_t重复定义,并且和另外的一个文件定义不一致。

把matrix.h文件修改如下:
//typedef CHAR16_T char16_t; 这是修改前的语句
typedef unsigned short char16_t;
再次编译,运行程序如下:
点击“plot”按钮,就绘制出一个正弦曲线。

好了,先讲到这里吧。

没来的急检查,先发出来吧!要是还有疑问,请加我的QQ群吧:128229028。

记住啊:Work time, no disturbance.
祝大家在学习编程的里程中一帆风顺!。

相关文档
最新文档