精华内容
下载资源
问答
  • matlab m文件输出的数据太小了为0.000几,vb调用dll文件后输出显示为零,在matlab command界面中查询到两者的数据交换的类型都是int16,有什么办法在这个数据交换的过程中把数据类型改为double
  • 前些天帮同学调试关于matlab的毕业设计,图像处理的。具体的实现倒没什么,开始需要我帮忙的是在VC里显示MATLAB的处理结果。 我非常偷懒的想法是,直接用一个按钮响应点击事件,然后处理函数里调exe.这样有一个坏处...

    前些天帮同学调试关于matlab的毕业设计,图像处理的。具体的实现倒没什么,开始需要我帮忙的是在VC里显示MATLAB的处理结果。 我非常偷懒的想法是,直接用一个按钮响应点击事件,然后处理函数里调exe.这样有一个坏处是,其实跟VC没什么关系,之间也没有交互。

    前些天帮同学调试关于matlab的毕业设计,图像处理的。具体的实现倒没什么,开始需要我帮忙的是在VC里显示MATLAB的处理结果。

    我非常偷懒的想法是,直接用一个按钮响应点击事件,然后处理函数里调exe.这样有一个坏处是,其实跟VC没什么关系,之间也没有交互。

    下面是生成exe的参考

    一、生成独立可执行的程序(exe文件)步骤

    1、安装编译器。可有多种选择,matlab自带了一个LCC,推荐使用VC++6.0。

    2、设置编译器。在matlab命令行输入mbuild –setup以及mex –setup,选择安装的c编译器。

    3、调用编译器。此处使用MATLAB下的一个GUI平台deploytool下完全实现。当然,也可以输入mcc -m filaname,

    filaname为要转成exe的m文件;

    PS:我使用的就是mcc命令。这里关于deploy使用都是说请看帮助,其实也没什么,就是新建一个deploy工程,在右边会有让引入主文件,和资源的窗口,把要生成EXE的.m文件引入,把要处理的图片之类的资源引入,使用mcc命令即可。

    注:在以前的版本中,用编译命令mcc -B sglcpp filaname;自2006的版本后,替换为mcc -mfilaname;

    4、安装\toolbox\compiler\deploy\win32目录下的MCRInstaller。

    第四步的MCR是为了在没有matlab的电脑环境下运行,这一步我没有细看。

    生成EXE后在VC的按钮响应函数里调用

    WinExec("xxx.exe",1)//参数是文件路径名,与显示方式。

    后来同学的老师不满意,并且要求VB,虽然我没有用过VB而且这个要求很XX,可还是能帮就帮了。

    具体如下:

    单击“工程”菜单——>部件——>部件对话框——>在“控件”选项卡中选择“Microsoft Windows Common Control6.0”点击“确定”按钮,如图4.5。之后可以看到工具栏中增加了项目,将它从工具栏拖拽到设计界面中。 然后添加并设置所需要的功能的按钮,进行工具栏的设计,如图4.6。

    test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20150106132638163%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlqdW41Mzg%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flijun538%2Farticle%2Fdetails%2F42457505

    图4.5添加“Microsoft Windows Common Control6.0”控件

    Fig. 4.5 Add “Microsoft Windows Common Control6.0”control

    对了,这里可能会出现无法注册的问题,使用管理员模式打开工程,使用浏览(B)去添加部件。

    或者把.ocx文件拷贝到c:\windows\System32 然后运行cmd

    使用命令

    Regsvr32 C:\windows\system32\Mscomm32.ocx

    test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20150106132646218%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlqdW41Mzg%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flijun538%2Farticle%2Fdetails%2F42457505

    图4.6制作工具栏

    Fig. 4.6 Make the toolbar

    设计图形显示界面:

    完成菜单栏,工具栏的创建以后,可以在窗体中创建两个picture图片框,在窗体上建立一大一小两个水平排列的图片框,左边的图片框(名称:picture1)小一点,用来显示待处理图片,右边的图片框(名称:picture2)大一点,用来显示处理后的效果图片。整个电弧图像处理系统的界面完成图如图4.7所示。

    test.jsp?url=http%3A%2F%2Fimg.blog.csdn.net%2F20150106132751904%3Fwatermark%2F2%2Ftext%2FaHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGlqdW41Mzg%3D%2Ffont%2F5a6L5L2T%2Ffontsize%2F400%2Ffill%2FI0JBQkFCMA%3D%3D%2Fdissolve%2F70%2Fgravity%2FCenter&refer=http%3A%2F%2Fblog.csdn.net%2Flijun538%2Farticle%2Fdetails%2F42457505

    图4.7界面完成图

    Fig. 4.7 The completed interface diagram

    请输入文件名后面是控件Text1

    打开按键的点击响应函数是

    picname = Me.Text1.Text

    Picture1.Picture = LoadPicture(App.Path & "\" & picname)

    如果路径不对,可以使用绝对路径,类似

    Picture1.Picture = LoadPicture("F:\java\" & picname)

    特别提醒一下,使用24位真彩以上的图片读不出来,VB只支持jpg,bmp格式,像png可以用图画打开后另存修改后缀。

    为工具栏上的各种实现电弧图像处理的功能按钮添加相应功能的代码,实现VB对MATLAB图像处理程序的调用,对于选则某种功能按钮实现相应功能

    Private Sub Command1_Click()

    Set matlab = CreateObject("matlab.application")

    Dim matlab As Object

    Clipboard.Clear

    matlab.execute ("x=[1 2 4],y=[4 6 7];plot(x,y)") '此处输入matlab中命令

    matlab.execute ("print -dbitmap;close") '把所作图以位图形式保存在剪贴板中,并关闭

    Me.Picture2.Picture = Clipboard.GetData() '将剪贴板中图像在image控件中显示出来

    End Sub

    因为同学电脑超慢,一点儿也不想改matlab生成EXE部分。这里我用了一个笨方法,把处理的语句都放到matlab.execute ()

    时间与能力有限,有个问题没解决,我想直接掉用

    Shell "nouse1.exe "并且能在VB里截取matlab中图像并关闭matlab.exe。如何处理,有想法的请指教。

    展开全文
  • VB调用matlab编写的M文件进行运算

    千次阅读 2018-12-15 15:58:39
    Matlab产生的M文件不能直接在VB调用,可利用mcc将M文件直接编译成.exe文件,然后在VB中声明下面三个API函数,最后使用Shell命令即可实现VBMatlab的无缝集成。 1.用mcc生成独立的外部应用程序。可使用如下两种命令...

    Matlab产生的M文件不能直接在VB中调用,可利用mcc将M文件直接编译成.exe文件,然后在VB中声明下面三个API函数,最后使用Shell命令即可实现VB与Matlab的无缝集成。
    1.用mcc生成独立的外部应用程序。可使用如下两种命令:
    mcc -p file.m 或 mcc -m file.m
    在这里插入图片描述
    2.在VB中声明调用的三个API函数:
    ● Declare Function WaitForSingleObject Lib “kernel32”(ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    ● Declare Function CloseHandle Lib “kernel32”(ByVal hObject As Long) As Long
    ● Declare Function OpenProcess Lib “kernel32”(ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long,ByVal dwProcessId As Long) As Long
    注意:在VB中使用API函数时;
    在VB中声明API函数有两种方法:
    如果我们只在某个窗体中使用API函数,我们可以在窗体代码的General部分声明它:
      声明的语法是:
      Private Declare Function …
      Private Declare Sub…
      这里必须采用Private声明,因为这个API函数只能被一个窗体内的程序所调用。
    如果我们的程序有多个窗体构成,而且我们需要在多个窗体中使用同一个API函数,就需要在模块中
    声明了。
      先添加一个模块(如图示),
      在这里插入图片描述
      然后采用如下语法声明:
      Public Declare Function…
      Public Declare Sub…
      Public声明的含义是把API函数作为一个公共函数或过程,在一个工程中的任何位置(包括所有的窗体和模块)都能直接调用它。声明完毕我们就能在程序中使用此API函数了。
      即:
    Private Declare Function WaitForSingleObject Lib “kernel32” (ByVal hHandle As Long, ByVal dwMilliseconds As Long) As Long
    Private Declare Function CloseHandle Lib “kernel32” (ByVal hObject As Long) As Long
    Private Declare Function OpenProcess Lib “kernel32” (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
    (如图:
     在这里插入图片描述
    3.操作代码
    Dim lTask As Long, lret As Long, lHandle As Long
    ’执行file.exe文件
    lTask = Shell(“VB20181215.exe”, vbNormalFocus) ""文件路径
    lHandle = OpenProcess(SYNCHRONIZE, False, lTask)
    ’等待进程执行完毕
    lret = WaitForSingleObject(lHandle, INFINITE)
    lret = CloseHandle(lHandle)
    ’ VB2018121.exe文件执行完毕后,继续执行应用程序

    展开全文
  • VB调用Matlab编写的dll

    2020-11-18 11:20:59
    VB调用Matlab编写的dll 本文将介绍如何在VB6.0中调用Matlab生成的dll中的函数 工具/原料 Matlab2010b VB6.0 方法/步骤 首先在Matlab2010b中建立一函数文件,本文命名为add_num: 运行命令:...

     

    VB调用Matlab编写的dll

    本文将介绍如何在VB6.0中调用Matlab生成的dll中的函数

    工具/原料

    • Matlab2010b
    • VB6.0

    方法/步骤

    1. 首先在Matlab2010b中建立一函数文件,本文命名为add_num:

    1. 运行命令:deploytool,新建一工程,“Target”选为“Generic COM Component”

    1. 在deploytool窗口中,添加class,然后添加文件,选刚才创建的my_add.m:

    1. 点击“Build”按钮,即开始编译

    1. 编译成功后,即可看到生成的dll文件

    1. 启动VB6.0,新建一工程,类型为标准EXE,添加一按钮控件:

    1. 添加dll引用:

    1. 双击按钮控件,输入如下代码:

    1. 启动程序,运行结果如图:

     

    展开全文
  • 基于BP神经网络的电火花线切割(WEDM)工艺仿真系统...综合两种开发环境各自的优势,可采用VBMatlab混合编程的方法实现工艺仿真软件的编程开发。  在VB开发环境下制定前台用户界面,利用Matlab强大的计算功能实现后台
  • VB调用Matlab的模拟电路故障诊断神经网络方法.pdf
  • vb调用matlab的dll

    2021-10-02 03:30:50
    vb调用matlab的dll的视频教程(wmv) vb调用matlab的dll的视频教程(wmv) vb调用matlab的dll的视频教程(wmv) vb调用matlab的dll的视频教程(wmv)
  • VB,神经网络,matlab,代码,利用VB调用Matlab中的神经网络工具箱
  • 版本说明:VS2008,MATLAB2010b 二、安装MCRInstaller 在路径C:\Program Files\MATLAB\R2010b\toolbox\compiler\deploy\win32下 三、在MATLAB命令窗口中配置环境 1. 输入: mbuild –setup 出现以下界面,我选择...

    一.版本说明:VS2008MATLAB2010b

    二、安装MCRInstaller

    在路径C:\Program Files\MATLAB\R2010b\toolbox\compiler\deploy\win32

    三、MATLAB命令窗口中配置环境

    1. 输入: mbuild –setup 出现以下界面,我选择的是[2]自己的编译器,不是MATLAB自带的。

    2.打开下图

     

    3.然后弹出以下对话框

    名字自己命,我的叫recognition.选择Generic COM Component。点击 “OK”。MATLAB右边出现以下界面

    点击“Add class”,命名自己的类,我的叫recognition。点击”Add files”添加自己的M文件,我的主程序叫Multimeter1.调用的子程序是lianxu1和vcmubanpipei。。。在下边添加的是我的模板图片,程序用到的不需要改变的图片可以放这里。没有用到图片不用添加。

    然后点击第一个图标,build

    等待2-3分钟,就生成完了,如下图

    到此,,就会在你选择的路径下生成了一个文件夹 recognition打开它

    会有distrib和src两个文件夹。我们要的DLL在distrib里面。

    这就是我要的DLL。。

    如果在已经装上MATLAB的电脑上调用MATLAB的M文件,这个DLL就行了。如果要脱离MATLAB环境,我们需要打包。

    添加 Add MCR ,将MCR打包进来。再点击第二个打包图标。在Build图标的右边。

    打包完成,我的程序打包前的DLL只有2M,打包后有175M了。。。

    刚才的distrib文件夹下多了一个.BAT文件。

    还有一个EXE

    到这里对MATLAB的操作结束。。。。。。。

    DLL注册

    MATLAB生成的DLL,注册之后的DLL才能够被工程引用。

    三、对VB.NET的操作

    1. 添加引用

    添加MWArray.dll的引用,我的MATLAB2010b里面没有,在网上下,或者找更低版本的MATLAB,如MATLAB7.0 里面有的,考到自己电脑里边,然后对它添加引用。

    添加MWComUtil.dll的引用,MATLAB下边有,自己找到,添加。

    添加自己刚才制作的DLL。。我的叫recognition_1_0.dll

    一共添加了3DLL,缺少一个都不行啊!!!

    2 导入命名空间

     

    3 调用DLL的程序

     

    这是我的,第一句:对象化一个实例 dim ** as new 文件名.类名

    第二、三、五、六句:设置函数的输入参数,我的参数有两个,一个是图片img一个是数字angle.

    第四句:对象化输出参数

    第七句:调用MATLABmultimeter函数,参数说明:“1

    代表输出参数的个数;“result“是输出参数,img和angle是输入参数。这样我就可以得到结果了。我是对一张数字图像进行识别的程序,以下是结果。

    重要说明:

    1.。以上这用速度是很慢的,慢的原因是第一句,对象化实例的时候,如果这个函数要多次调用,我们希望程序只做一次实例对象,所以我将这几句放在模块里边:

    程序改为:

    这样第一次调用比较慢,后来速度就很快了。。

    2. 之前调用DLL一直不成功,一直跳出提示框大概说 JVM 的虚拟内存不足,加大电脑虚拟内存也没有用,头痛了四天,最后原因可能是程序里面实例化对象太多,内存暴涨。

    所以在加载窗口的程序中,我添加了好几句回收内存的语句,最后解决了。

    GC.Collect()

    3.如果MATLAB的M文件还需要用到一些图像,文本文件,将这些文件放入.NET工程下的BIN—DEDUG下边就好,这是默认的路径。

    4.对MATLAB的调用生成COM比生成EXE速度更快,首选COM方法吧。

    这是调用EXE的.NET程序,贴贴保留着,myexe.exe是MATLAB生成的EXE,一二三句话就是调用EXE.

    Dim FileName2 As String  '执行MATLAB的EXE文件

    FileName2 = Application.StartupPath & "\myexe.exe"

    System.Diagnostics.Process.Start(FileName2)

    转载于:https://www.cnblogs.com/michelleden/p/5355127.html

    展开全文
  • 里面有m文件 说明文档 vc6的工程 ,可以直接运行的小例子,快速入门的好帮手
  • VB调用Matlab

    2014-04-05 17:09:37
    VB程序调用MATLAB 这样就不用打开MATLAB,在VB中就可以执行MATLAB代码。同时你可以在VB中添加很多其他功能。
  • 1、新建VB.net工程,添加按钮控件;2、VS中,项目->添加引用,打开“添加引用对话框”。...3、matlab中编写m文件,保存为EngineTest.m文件('E:\储层伤害项目\matlab program\matlabcodesEngine')这里有输入、输...
  • 利用其中的动态数据交换()服务功能和自动化(自动化)服务功能,可以实现在中对函数的调用,并通过(中的基本数据类型)与工作空间交换数据,从而增强的数值计算能力和数据的可视化能力。下面介绍在程序中调用的方法。1的...
  • VB调用MATLAB实例

    2013-02-03 14:07:16
    VB调用MATLAB实例,很不错的一个例子。适合初学者
  • 大家好,我在vb中编写了一段调用matlab函数来绘图的代码,但是其中的commandialog控件在使用一次后就出现错误,不知哪位高手能不能给点帮助。谢谢!
  • 基于BP神经网络的电火花线切割(WEDM)工艺仿真系统需要具有...综合两种开发环境各自的优势,可采用VBMatlab混合编程的方法实现工艺仿真软件的编程开发。  在VB开发环境下制定前台用户界面,利用Matlab强大的计算功能
  • vbnet调用matlab

    2021-04-22 15:30:46
    \\然后参考该 类库的...Net] Matlab = CreateObject("matlab.application") MatLab.MinimizeCommandWindow......labview调用MATLABm文件,内容全面 使用NI LabVIEW,不论您是在开发算法、分析 和.NET(微软) DDE、T...
  • COM组件在实现VB调用MATLAB中的应用.pdf
  • VB调用Matlab绘图

    2011-01-16 09:28:29
    vb可视化界面与Matlab强大的运算功能结合
  • M函数文件代码:function flowtype1(k,j,g,o,t,h)q=0.001:0.001:10;dpsg=64/t*100*k*(t/100*q*k/g).^(-1).*q.^2/2;Y=(j-k)*9.8*sin(o)./dpsg;p=4.56*h*((j-k)*cos(o)*t^0.8*q.^0.4/j).^0.5;plot(q,p)hold onp=(((Y+...
  • vb调用matlab代码 ATL Com Demo 项目介绍 The usage of custom structure and Event notification of Com/ATL/ActiveX. 开发环境 Windows7 x64 Vs2017 测试环境 Windows7 x64 测试工具 MS office professional plus ...
  • COM组件在VB调用MATLAB中的应用实例
  • VB调用Matlab实例

    千次阅读 2014-08-05 21:59:50
    先用VB6.0简单的勾勒一个界面:
  • VB调用Matlab制作的COM组件实现二者混合编程.pdf
  • VB调用MATLAB的编程技术与干涉图像处理系统.pdf
  • VB调用MATLAB在机械手定位系统中的应用.pdf
  • VB调用Matlab在瞬变电磁法反演中的应用.pdf

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,511
精华内容 604
关键字:

vb调用matlab的m文件

matlab 订阅