zoukankan      html  css  js  c++  java
  • matlab混合编程向导(vc,vb,.net...)

    一.matlab与vc混编 
    1.通过mcc将matlab的m文件转化为cpp,c文件或dll供vc调用: 
       这方面的实现推荐精华区Zosco和ljw总结的方法(x-6-1-4-3-1和2) 
       vc的设置请参看精华区x-6-1-4-3-5,通过这种设置可以调用c math library和c++ 
       math library,C++ mathlib的pdf在精华区x-6-1-10里 
    2.通过matlab的combuilder将m文件做成com组件,供vc调用 
       参看精华区x-6-1-5 
    3.通过matcom: 
       这个mathworks公司已经不在出新版本了,而且他的功能可能用第1和第2种方法代替 
       推荐使用前两种方式,matcom的使用精华区有一部分,从x-6-1-4下找

    二.matlab与vb混编 
    1.mathworks公司专为vb开发了一个com组件:matrixvb,里面有大量的数学函数. 
       这个组件需要另装,请在安装盘上或网上下载,注册码参看精华区x-6-1-3-8 
       装好这个组件后,他自带了两个pdf文件,用法及其能用的函数全在上面,推荐阅读 
       这两个pdf文件,精华区的位置是x-6-1-4-6 
    2.通过matlab的combuilder将m文件做成com组件,供vb调用 
       参看精华区x-6-1-5

    三.matlab与.net混编 
       在6.1版本以前一直没有这方面的讨论,用mcc编成dll或cpp,c文件应该可以,由于 
       .net调用com组件很方便,推荐使用通过matlab的combuilder将m文件做成com组件,供 
       .net调用,参看精华区x-6-1-5

    四.试试通过matlab的combuilder做成com组件的方式实现混编,这也是mathworks公司 
    推荐的方法,他不受语言和编译器的局限,相信高版本的matlab将在这方面有更大的改进 
    这方面的介绍参看精华区x-6-1-5

    五.其他的语言或编译器与matlab混编 
        精华区x-6-1-4里有一些相关的介绍,不全,还请用过的大侠总结这方面的内容。 
    如果此编译器能调用com组件,那么也能通过matlab的combuilder将m文件做成com组件, 
    供他们调用的方法

    六.matlab调用外部dll(动态链接库等) 
    参看精华区x-6-1-4-9

    七.混编的一些常见问题FAQ 
    1.mcc编译m文件出现这样的错误提示(例): 
    Error: File "psf3" is a script M-file and cannot be compiled with the 
    current Compiler. 
    matlab complier不能编译script M-file,请将script M-file转成function m-file 
    最简单的一个转法是:如果你的m文件叫a.m,在开头加上一句: function a 
    推荐精华区x-6-1-4-12文章 
    2.mxArray,mwArray转double或其他的类型 
    参看精华区x-6-1-4-3-7和8 
    3.在vc下调用toolbox中的有些函数会出现问题 
    参看精华区x-6-1-4-3-9,这种问题还没有很好的解决方法 
    4.lib /def:libmmfile.def /out:libmmfile.lib /machine:ix86是什么意思? 
    这是调用VC的编译器lib.exe,从def文件导出lib文件,以实现对dll的调用 
    这是dos下的命令行。matlab的高版本已经不需要这么用了,它的lib文件全在 
    <matlabroot>/extern/lib/win32里,根据各个编译器的不同,此文件夹里还有分类的 
    文件夹。 
    5.我在Vc中选择新建一个matlab工程,可是最后一步确定的时候总是弹出一个窗口说 
    MSDEV.EXE应用程序错误."0x528aa3003指令” 
    引用的“0x52880000"内存.该内存不能为”written“? 
    这种情况是matlab的addin不能用,没有太好的解决方法,所以只能改用mcc 
    来代替addin了 
    6.matlab下生成的exe文件,怎么拿到没有matlab的机器上运行? 
    参看精华区x-6-1-8

    本文转自博客园知识天地的博客,原文链接:matlab混合编程向导(vc,vb,.net...),如需转载请自行联系原博主。


  • 相关阅读:
    ReenTrantLock可重入锁(和synchronized的区别)总结
    什么是死锁?如何解决死锁?【转载】
    android studio 完整安装教程,已完全实践过
    foxmail创建163公司企业邮箱的时候会出现ERR Unable to log on
    Android 开发 res里面的drawable(ldpi、mdpi、hdpi、xhdpi、xxhdpi)
    android studio 突然出现Gradle project sync failed 错误
    android 开发edittext获取焦点时hint消失
    Z480联想笔记本突然没有了声音
    android聊天,存储聊天记录sqlite
    adb shell出现error错误
  • 原文地址:https://www.cnblogs.com/twodog/p/12138040.html
Copyright © 2011-2022 走看看