PIE SDK与Matlab结合说明文档
1.功能简介
Matlab是三大数学软件之一,它在数学类科技应用软件中在数值计算方面首屈一指。Matlab可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。本示例程序实现了PIESDK调用Matlab函数功能(peaks函数),从而使PIE SDK可以与Matlab紧密结合。
2. 功能实现说明
2.1. Matlab自定义函数
Matlab自定义函数是一个*.m脚本文件,文件内容以function [返回值]=[函数名]([参数1,参数2])开始,且通常将文件名和函数名保持一致。
2.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),请确定版本是否正确
编译过程需要注意:
① 若出现mcc错误,原因是matlab未破解完全,需要将破解文件把install.jar以及相应位数的三个文件(compiler.dll,mcc.exe,libmwservices.dll)复制到对应位置替换
② 注意.Net版本以及32位64位,这与Matlab/MCRInstaller有关系。
③ .Net项目生成位数一定与Matlab编译的库位数相同
第一步 |
在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中的方法 |
2.3. 核心接口与方法
接口/类 |
方法 |
说明 |
|
|
|
2.4. 示例代码
项目路径 |
百度云盘地址下/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 } |