在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
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,添加。 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的**办法: 3、常见问题 MathWorks.MATLAB.NET.Arrays.MWNumericArray"的类型初始值设定项引发异常 我在自己的电脑上(x86)上运行没有问题,我程序放到一台(x64)电脑上运行出错,如上。解决办法将项目平台改为(x64即可)。当然64位系统上也安装了matlab。 一般而言出现上述异常,都是平台不兼容导致的。 转自:https://blog.csdn.net/fxm720505/article/details/51382547 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论