1.1操作环境
操作系统
Win7(32位)必需软件:
MatlabR2015a
VisualStudio2012(包含VisualC#和VisualC++)NetFramework4.0以上
1.2操作步骤
首先Matlab的打包工具,把Matlab函数打包为dll文件。然后在C#中,引用生成的dll文件,并在程序中调用dll中的函数。下面分步骤介绍:
1.2.1路径设定
在F盘新建一个名为Matlab的文件夹;启动Matlab.exe,在命令窗口输入pathtool,会弹出如下对话框。点击【AddFolder】,选择刚才的文件夹即可。关闭对话框后,在命令窗口输入userpath(‘F:\\Matlab’)。按回车设定完毕。
1.2.2M文件创建
在Matlab中新建一个M文件,写入如下函数代码,保存为F:\\Matlab\\gougu.m。
functionw=gougu(a,b)w=a*a+b*bend1.2.3打包生成dll
在Matlab命令窗口输入deploytool,弹出如下选项,选择“LibraryCompiler”
出现打包程序窗口界面:
在窗口中进行如下选择:Type:.NetAssembly
ExploredFunctions:选择刚才做好的gougu.m文件
PackagingOptions:勾选上面的复选框,取消勾选下面的复选框。填写LibraryInformation各项
最后,点击窗口右上角的Package按钮,一直等待到提示打包完成。打包结束后,会在文件夹中看到生成了的dll文件,路径为“F:\\Matlab\\gougu\\for_redistribution_files_only\\gougu.dll”。
1.2.4C#调用dll
在VisualStudio2012中,新建一个C#控制台程序或者WinForm应用程序,本例创建的是窗体应用程序,在默认窗体上放入一个标准按钮button1。然后为项目添加如下两个外部引用:
gougu.dllMWArray.dll
其中gougu.dll就是刚才打包生成的dll文件,而另一个MWArray.dll,位于“C:\\ProgramFiles\\MATLAB\\MATLABProductionServer\\R2015a\oolbox\\dotnetbuilder\\bin\\win32\\v2.0\\MWArray.dll”然后在C#代码中,加入如下3个命名空间:
usinggougu;usingMathWorks.MATLAB.NET.Arrays;usingMathWorks.MATLAB.NET.Utility;在窗体的button1的单击事件过程中,输入:
privatevoidbutton1_Click(objectsender,EventArgse){
gougu.Class1g=newgougu.Class1();
MWNumericArrayarray=newMWNumericArray(7);MWNumericArrayarray2=newMWNumericArray(4);MWArrayresult=g.gougu(array,array2);MessageBox.Show(result.ToString());}
启动窗体后,单击按钮,返回结果为65。
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务