Matlab是三大数学软件之一,它在数学类科技应用软件中在数值计算方面数一数二。Matlab能够进行矩阵运算、绘制函数和数据、实现算法、建立用户界面、链接其余编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通信、图像处理、信号检测、金融建模设计与分析等领域。本示例程序实现了PIESDK调用Matlab函数功能(peaks函数),从而使PIE SDK能够与Matlab紧密结合。算法
Matlab自定义函数是一个*.m脚本文件,文件内容以function [返回值]=[函数名]([参数1,参数2])开始,且一般将文件名和函数名保持一致。编程
Matlab提供了deploytools工具能够将matlab函数编译为.Net可用的DLL,从而方便.Net程序直接引用(运行须要安装MCRInstaller)。编译过程参考:数组
https://blog.csdn.net/zuo_csdn/article/details/53518963.编程语言
本示例采用Matlab 2014a 和 Matlab 2014a MCRInstaller(MCR8.3),单独运行示例程序需安装Matlab 2014a MCRInstaller(MCR8.3),请肯定版本是否正确编辑器
编译过程须要注意:ide
① 若出现mcc错误,缘由是matlab未破解彻底,须要将破解文件把install.jar以及相应位数的三个文件(compiler.dll,mcc.exe,libmwservices.dll)复制到对应位置替换函数
② 注意.Net版本以及32位64位,这与Matlab/MCRInstaller有关系。工具
③ .Net项目生成位数必定与Matlab编译的库位数相同ui
第一步spa |
在Command Window窗口中输入mbuild –setup查看编译器,将编辑器设置为vs |
第二步 |
安装MCRinstaller.exe,在matlab安装目录下toolbox\compiler\deploy\win64 |
第三步 |
注册mwcomutil.dll,在\bin\win64中 |
第四步 |
编写.m文件并调试经过 |
第五步 |
在Command Window窗口中输入deploytool。将.M编译生成dll,在弹出的deploytool窗口中: 1) 选择Library Compiler 2) 在Application type 项中选择 .NET Assembly 3) 在Exported Functions中点击+号,添加.M文件 4) 在下方填写DLL的类名和包含的方法名称 5) 右上角点击Package |
第六步 |
将生成的DLL复制到.Net程序目录下并添加引用 |
第七步 |
若是使用了数组,须要将MWArray.Dll也引用上并复制到程序输出目录下 |
第八步 |
调用DLL中的方法 |
接口/类 |
方法 |
说明 |
|
|
|
项目路径 |
百度云盘地址下/PIE示例程序/14.SDK拓展开发/ 02PIESDK与Matlab结合/ BlendWithMatlab |
数据路径 |
百度云盘地址下/PIE示例数据/栅格数据/ |
视频路径 |
百度云盘地址下/PIE视频教程/14.SDK拓展开发/ 02PIESDK与Matlab结合.avi |
示例代码 |
|
![]() 1 /// <summary> 2 /// Matlab 3 /// </summary> 4 /// <param name="sender"></param> 5 /// <param name="e"></param> 6 public FormMatlabTest () 7 { 8 InitializeComponent(); 9 //运行须要安装MCRInstaller 10 DonetTest.TestClass testClass = new TestClass(); 11 //调用matlab函数,返回值result为图像数组 12 MWArray result = testClass.DonetTestFunc(); 13 } |