WPF(C#)与MATLAB混合编程
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混合编程相关推荐
- wpf matlab混编,WPF(C#)与MATLAB混合编程
WPF(C#)与MATLAB混合编程 WPF可以为开发者提供便捷地构建用户交互界面的解决方法,而matlab则在科学计算方面有着无与伦比的优势,因此在一些需要将科学算法转换为应用软件的项目中,需要应用 ...
- matlab两个多项式相除,C++和MATLAB混合编程求解多项式系数(矩阵相除)
摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...
- 怎样用matlab打开mw文,C# matlab混合编程 MWArray使用笔记
C# matlab混合编程 徐凯Email:xukai19871105@http://www.doczj.com/doc/1a6e191fff00bed5b9f31dbf.html 这几天突然想搞一搞 ...
- c 使用matlab引擎,[转载]C与MATLAB混合编程之调用MATLAB引擎
Visual Studio调用MATLAB需要的配置已经在<Visual Studio调用MATLAB的配置>一文中给出了详细的步骤,本文将介绍混合编程的示例. 在C中调用MATLAB,据 ...
- VS和matlab混合编程的推荐书籍!
1. 精通MATLAB混合编程 丁毓峰
- C++和MATLAB混合编程-DLL篇
先小话一下DLL,DLL是动态链接库,是源代码编译后的二进制库文件和程序接口,和静态链接库不同的是,程序在编译时并不链接动态链接库的执行体,而是在文件中保留一个调用标记,在程序运行时才将动态链接库文件 ...
- matlab求解多项式系数,C++和MATLAB混合编程求解多项式系数(矩阵相除)
摘要:MATLAB对于矩阵处理是非常高效的,而C++对于矩阵操作是非常麻烦的,因而可以采用C++与MATLAB混合编程求解矩阵问题. 主要思路就是,在MATLAB中编写函数脚本并使用C++编译为dll ...
- MATLAB混合编程视频教程下载 SIMULINK系统仿真视频
下载链接: http://item.taobao.com/item.htm?id=43401674106 精通MATLAB混合编程视频讲解 MATLAB各类函数视频讲解 基于MATLAB的高等数学问 ...
- VC与Matlab混合编程的快速实现(3-1)
[原创]VC与Matlab混合编程的快速实现(3-1) 发信站: BBS 水木清华站 (Mon May 19 21:30:19 2003), 转信 3 在VC++中使用Matlab生成的动 ...
最新文章
- python 16进制转10进制, 8进制转10进制, 2进制转10进制的方法
- object-c中管理文件和目录:NSFileManager使用方法
- 人工手动冷备不完全恢复介绍(purge表不完全恢复)
- 09 Storage Structure and Relationships
- 动画演示10个有趣但毫无用处的Linux命令
- python函数和方法的入参格式有哪些_Python函数的参数常见分类与用法实例详解
- window.open 不显示地址栏_谷歌浏览器Chrome显示「由贵单位管理」怎么解决?非阿里...
- 大数据架构如何做到流批一体?【对于Flink等流批一体的概念做了很好的澄清!】
- springcloud 之 路由网关 zuul
- yii2 session mysql_Yii框架 session 数据库存储操作方法示例
- Springboot启动报错Error handling failed
- python file tell_Python3 File tell() 方法
- VC++控件加载BMP图片(静态和动态方式)
- spring boot 设置启动时初始化DispatcherServlet
- 教学案例分析 计算机应用,计算机教学案例分析
- 杨辉三角python代码 不要括号_关于杨辉三角python代码的问题
- usb Android gentoo,gentoo usb 鼠标
- c语言表白情书作品,程序员一句话表白情书
- 让我在这枯燥的实验室机房里,告诉你们什么是嵌入式软件开发
- arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器
热门文章
- [学习笔记]信号与系统
- CTFshow 爆破 web28
- Python中常见的数据类型小结
- CSS实现图片居中且缩放不影响图片纵横比
- mysql提示The server quit without updating PID file /usr/local/mysql/data/localhost.localdomain.pid
- vue工程本地代码请求http发生跨域提示错误解决方法
- Luffy之Xadmin以及首页搭建(轮播图,导航)
- 使用js实现放大镜效果
- 大数据笔记(三十二)——SparkStreaming集成Kafka与Flume
- 利用keepalived和haproxy配置mysql的高可用负载均衡