【c#】C#调用matlab动态链接库
来源:互联网 发布:英雄美工钢笔9076 编辑:程序博客网 时间:2024/05/17 18:46
1、C#调用matlab程序方法
步骤一:在MATLAB中建一个m文件(test.m)
***注意,.m文件名随意,function函数名随意***
该程序用于模拟生成雷克子波,并绘图,代码如下:
function test()
f=250;
ts=0.4502/f;
T=ts;
number=100;
t=-number/2:1:number/2;
a=(1-2*(pi*f*t*T).^2).*exp(-(pi*f*t*T).^2);
plot(t,a);
步骤二:生成dll动态链接库
在MATLAB R2014a中输入deploytool命令,
选择“Library Compiler”,打开动态链接库编译器
1、 在“applicationtype”中选择要生成的链接库类型。 选择“.NET Assembly”
2、 在“exportedfunctions”中选择,函数所在的.m文件,即我们刚刚创建的test.m文件。
3、 为该类名起一个见名知意的名字,如ricker,默认为class1.
4、 点击右上角对号.
5、 开始编译
此时显示成功。生成成功后会自动打开生成文件所在路径
打开“…..noly”文件,如下,我们只需要第一个dll文件。创建.net程序时,引用该dll即可
步骤三:C#程序中调用MATLAB程序(dll)
1、创建一个 windows窗体应用程序
2、"引用"右击,选择浏览,找到test.dll,添加。
"引用"右击,选择浏览,找到MWArray.dll(matlab安装路径\toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll),添加
3、在界面添加一个button按钮,在这个按钮的点击事件中调用dll中的函数。
private voidbutton1_Click(object sender, EventArgs e)
{
//new一个test类
test.Ricker st = new test.Ricker();
st.test();//调用matlab中的定义的function
}
步骤四:实现效果
点击button按钮
2、使用deploytool命令打开compiler面板
生成dll时,会出现如下图所示错误
原因是matlab未完全破解,2014a的破解办法:
http://pan.baidu.com/s/1qWFbOjq,提取码84rg ,下载后解压,把“..\Matlab64\bin\win64”目录下的compiler.dll,mcc.exe,libmwservices.dll 三个文件复制到matlab安装目录对应位置替换原文件即可!(如果软件是32位,则对应目录为“..\Matlab32\bin\win32”)
3、常见问题
MathWorks.MATLAB.NET.Arrays.MWNumericArray"的类型初始值设定项引发异常
我在自己的电脑上(x86)上运行没有问题,我程序放到一台(x64)电脑上运行出错,如上。解决办法将项目平台改为(x64即可)。当然64位系统上也安装了matlab。
一般而言出现上述异常,都是平台不兼容导致的。
转自:http://blog.csdn.net/fxm720505/article/details/51382547
- 【c#】C#调用matlab动态链接库
- C#调用matlab动态链接库
- C#调用C/C++动态链接库
- C#调用matlab写的动态链接库(dll)
- C#调用matlab写的动态链接库(dll)
- Matlab调用动态链接库
- vc++调用MATLAB complier生成的C动态链接库
- C#调用动态链接库
- C# 调用动态链接库
- C#调用动态链接库
- C#调用动态链接库
- C#调用动态链接库
- 创建和使用动态链接库 (C++)C#调用
- C#调用C/C++ 动态链接库DLL(一)
- C#调用C/C++ 动态链接库DLL(二)
- C#调用C/C++ 动态链接库DLL(三)
- C#调用C/C++动态链接库(.dll)详解
- C#调用C/C++动态链接库(.dll)详解
- POI: 导入数字时,在获取cell时已经损失精度问题
- E
- 手摸手教你搭建vue-cli脚手架-详细步骤图文解析[vue入门]
- Java内部类的概念
- Arbitrage
- 【c#】C#调用matlab动态链接库
- 2017多校4 1011 Time To Get Up
- HDUOJ Let the Balloon Rise
- 解决浏览器会产生缓存的问题
- POJ 2513 Colored Sticks 好题 字典树+并查集+欧拉路
- 线程分组 | 守护线程 | 线程优先级
- Arrays静态方法
- SDPhotoBrowser 详细介绍 非常简单易用的图片浏览器,模仿微博图片有源码例子
- C++实现俄罗斯方块源码分享(Windows编程),有图形界面