如何在C#中调用在matlab里面写的函数

如何在在C#中调用在matlab里面写的函数

最近参加一个做系统比赛,本人负责遥感影像的预处理阶段。由于采用的是PIE软件,软件当中不支持热红外波段的辐射定标,所以需要自己写这部分代码,而在C#中处理遥感影像比较麻烦因为转为使用matlab进行这部分操作。在这段工作当中参考的基本是这篇博客:https://www.cnblogs.com/eniac12/p/4390845.html,本人仅就自己实际操作过程中的问题进行整理。

前边提到的博文作者给的流程已经很详细了,具体流程转到这个链接直接看就可以了https://www.cnblogs.com/eniac12/p/4390845.html,所以这里就只简单的整理一下流程和自己实际操作过程中遇到的问题。

1、把 matlab函数编译成dll文件
1.1、首先写一个自己想要实现的功能的函数的.m文件
1.2、创建制作的dll文件的工程
1.3 、向所建工程中添加对应的元素并编译
这部分需要主义的是记住自己创建的工程名称以及新建的类的名称,在c#中调用的的时候将其实例化会用到,如果忘记了也没有关系,可以在保存工程的文件夹下面去找,我的路径是C:\Users\Husky\Documents\MATLAB\FunctionTHRACA\for_testing

2、C#中添加matlab的dll引用
2.1、打开vs2010,新建一个窗体应用程序
2.2、完成dll文件的拷贝
2.3、在VS里添加dll文件的引用,然后在代码前引用相应的命名空间
这部分在拷贝文件过程中遇到的问题是没有文中出现的“Debug”文件夹,而是这样一个路径:D:\VS2015\vs2015anzh\Common7\Packages\Debugger

3、在C#中调用matlab提供的函数
3.1、将调用的函数的类进行实例化,具体格式为 :工程名称.类的名称 test = new 工程名称.类的名称();
3.2、定义输入输出参数
3.3、将输入参数首先转换为中间类型,然后转换为为MWArray元素类型,以便matlab使用
3.4、调用函数实现相关功能,
3.5、将输出参数首先转换为中间类型,然后转换为为c#接收参数。

注意事项:
1在运行C#程序时确保matlab是打开的
2可以在matlab程序当中添加将结果可视化的函数,来验证一下自己的函数是不是被成功调用了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值