WPF(C#)与MATLAB混合编程

WPF可以为开发者提供便捷地构建用户交互界面的解决方法,而matlab则在科学计算方面有着无与伦比的优势,因此在一些需要将科学算法转换为应用软件的项目中,需要应用到WPF或者说C#和matlab的混合编程。相比于MFC和MATLAB的混合变成,C#与其的混编所需要做的准备工作更为简单。

1、编辑需要被WPF程序调用的matlab函数文件,例如:test.m;

2、编译test.m文件;

(1)打开matlab的部署工具(我所用到的MATLAB版本为R2014a,系统为Windows7 32位)

将test.m文件所在的目录设置为当前工作目录,在matlab命令行中输入:“deploytool”,在出现的三个选项中选择Library Compiler选项;

(2)进行部署的设置

如下图所示,在编号1处选择所输出的库类型,由于是针对C#进行部署,因此选择.NET Assembly选项。在编号2处,点击右侧的加号按钮添加需要被编译的MATLAB函数,例如本例中的test.m函数,可以在其中添加多个MATLAB函数文件。编号3处是输入所生成的库的名称。编号4处,可以设定所生成的类的名称,可以将之前所添加的MATLAB函数添加进去,作为类中的一个函数,这一步可以认为是新建一个类,在其中建立我们想要调用的MATLAB函数的C#实现。在前四步设定好之后就可以点击编号5处的打包按钮。打包所需的时间比较长,耐性等待程序打包完成。

3、将生成的DLL库应用到wpf项目中,并且在项目中进行相关设置

这一步这篇博客上面写得很清楚,可以参考其中的内容完成最后一步。

PS:笔者最近测试C#与Matlab混合编程的可移植性,分别测试了64位WIN7、win10X64、32位win7和64位win10,发现使用32位matlab内的MWArray.dll,无法应用到64位的系统上,因此需要针对不同的系统对项目进行编译。

转载于:https://www.cnblogs.com/AlgrithmsRookie/p/7105396.html

WPF(C#)与MATLAB混合编程相关推荐

  1. wpf matlab混编,WPF(C#)与MATLAB混合编程

    WPF(C#)与MATLAB混合编程 WPF可以为开发者提供便捷地构建用户交互界面的解决方法,而matlab则在科学计算方面有着无与伦比的优势,因此在一些需要将科学算法转换为应用软件的项目中,需要应用 ...

  2. matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)

    摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...

  3. 怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记

    C# matlab混合编程 徐凯Email:xukai19871105@http://www.doczj.com/doc/1a6e191fff00bed5b9f31dbf.html 这几天突然想搞一搞 ...

  4. c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎

    Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...

  5. VS和matlab混合编程的推荐书籍!

    1. 精通MATLAB混合编程 丁毓峰

  6. C++和MATLAB混合编程-DLL篇

    先小话一下DLL,DLL是动态链接库,是源代码编译后的二进制库文件和程序接口,和静态链接库不同的是,程序在编译时并不链接动态链接库的执行体,而是在文件中保留一个调用标记,在程序运行时才将动态链接库文件 ...

  7. matlab求解多项式系数,C++和MATLAB混合编程求解多项式系数(矩阵相除)

    摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...

  8. MATLAB混合编程视频教程下载 SIMULINK系统仿真视频

    下载链接: http://item.taobao.com/item.htm?id=43401674106 精通MATLAB混合编程视频讲解  MATLAB各类函数视频讲解 基于MATLAB的高等数学问 ...

  9. VC与Matlab混合编程的快速实现(3-1)

    [原创]VC与Matlab混合编程的快速实现(3-1) 发信站: BBS 水木清华站 (Mon May 19 21:30:19 2003), 转信 3       在VC++中使用Matlab生成的动 ...

最新文章

  1. python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法
  2. object-c中管理文件和目录:NSFileManager使用方法
  3. 人工手动冷备不完全恢复介绍(purge表不完全恢复)
  4. 09 Storage Structure and Relationships
  5. 动画演示10个有趣但毫无用处的Linux命令
  6. python函数和方法的入参格式有哪些_Python函数的参数常见分类与用法实例详解
  7. window.open 不显示地址栏_谷歌浏览器Chrome显示「由贵单位管理」怎么解决?非阿里...
  8. 大数据架构如何做到流批一体?【对于Flink等流批一体的概念做了很好的澄清!】
  9. springcloud 之 路由网关 zuul
  10. yii2 session mysql_Yii框架 session 数据库存储操作方法示例
  11. Springboot启动报错Error handling failed
  12. python file tell_Python3 File tell() 方法
  13. VC++控件加载BMP图片(静态和动态方式)
  14. spring boot 设置启动时初始化DispatcherServlet
  15. 教学案例分析 计算机应用,计算机教学案例分析
  16. 杨辉三角python代码 不要括号_关于杨辉三角python代码的问题
  17. usb Android gentoo,gentoo usb 鼠标
  18. c语言表白情书作品,程序员一句话表白情书
  19. 让我在这枯燥的实验室机房里,告诉你们什么是嵌入式软件开发
  20. arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器

热门文章

  1. [学习笔记]信号与系统
  2. CTFshow 爆破 web28
  3. Python中常见的数据类型小结
  4. CSS实现图片居中且缩放不影响图片纵横比
  5. mysql提示The server quit without updating PID file /usr/local/mysql/data/localhost.localdomain.pid
  6. vue工程本地代码请求http发生跨域提示错误解决方法
  7. Luffy之Xadmin以及首页搭建(轮播图,导航)
  8. 使用js实现放大镜效果
  9. 大数据笔记(三十二)——SparkStreaming集成Kafka与Flume
  10. 利用keepalived和haproxy配置mysql的高可用负载均衡