月了落 月了落
关注数: 0 粉丝数: 84 发帖数: 3,660 关注贴吧数: 80
关于在C#调用matlab函数 首先感谢帮助过我的吧友!这里分享一下如何在C#里调用matlab里定义的函数,虽然是很基础的东西,但凡这能帮到一个初学者都是值得的。以下是在网上搜集到的资料,以及各位大佬的帮助,最后结合自己的情况整理出的步骤: 1.下载Matlab Runtime:http://tieba.baidu.com/mo/q/checkurl?url=https%3A%2F%2Fww2.mathworks.cn%2Fproducts%2Fcompiler%2Fmatlab-runtime.html&urlrefer=cb48cad7d0d52ff09ef55fd0000ac859。下载你自己的matlab对应的版本即可。(注意你的matlab,和Matlab Runtime,以及visual studio应该都是一致的,比如X64,我的matlab2017a是64位的,下载的Matlab Runtime也是64位的,visual studio是2019的,默认是Any CPU,我为了保险起见把它改成了X64) 2.在matlab里编写函数,下面是我自己的实例,是关于调用matlab的快速傅里叶变换(FFT)的函数:3.把你编写好的函数存放好,然后在命令栏内输入:deploytool。在跳出界面中选择Library Compilar,然后到如下界面:上面第一个方框内往下拉选择.NET Assembly,然后右边的+号选择你刚刚保存的函数,其他信息可以不用修改(在下面你还可以修改生成的类的名称),最后点右上角的Package,记住你选择生成到的位置。 4.在C#工程中要添加2个引用,一个是你刚刚生成的dll文件,另一个是有关MWArray的,这个类是用来传递两个平台之间数据用的。第一个的位置我就不说了(名字是你自己起的,比如我的这个函数对应的就是Myfft.dll),是你自己之前选择的;第二个dll文件在:D:\ProgramFiles\matlab\toolbox\dotnetbuilder\bin\win64\v4.0 具体哪个盘看你自己把matlab安装在哪里,那个MWAarry.dll就是你要添加的文件。 5.使用using关键字:我原本照网上的资料只添加了中间两个,但是在使用MWAarry时,系统提示我指代不明确,咱们使用的应该是第一行里面的那个MWAarry,这个你多试试就好了。 6.由于我调用的是fft,我想传递进去的是一个一维数组,那么这个一维数组需要这样定义:7.实例化类,并调用函数,接收时要把数据转换成Array类型,C#才能识别:这样得到的数组a,在C#里可以直接用for循环输出查看结果了
首页 1 2 3 下一页