c#调用matlab生成的dll,这个过程分为三步:

1、编写matlab代码

2、将.m文件编译成dll

3、在C#代码里调用dll

打算实现的功能:

求x*y的二维数组的均方差

一、编写matlab代码

matlab代码如下:

function result = CalculationVar(img_in, x, y)result_std2 = std2(img_in);result = [result_std2, x, y];
end

保存的文件名称为: CalculationVar.m

img_in 是二维数组,本文是 512*512的二维数组

x:行数,本文是512

y:列数,本文是512

二、将.m文件编译成dll

1. 在matlab的命令行窗口,输入 deploytool

2. 弹出如下的对话框:

选择Library Compiler,弹出如下对话框:

TYPE栏选择.NET Assembly, 点击 + 号,选择 CalculationVar.m文件,将Class Name 改成 CalculationVarClass,最后点击 Package 按钮, 提示是否保存 CalculationVar.prj,选择是,等待生成

生成完成后,如下所示:

三、在C#代码里调用dll

新建c# winfrom的工程,界面上放个按钮,如下图

添加引用:CalculationVar.dll 和 MWArray.dll

在  MATLAB\CalculationVar\for_redistribution_files_only 找到 CalculationVar.dll

在  MATLAB\R2018b\toolbox\dotnetbuilder\bin\win64\v4.0 找到 MWArray.dll

点击事件代码如下:

 private void button3_Click(object sender, EventArgs e){try{//构建512*512二维数组double[,] arr = new double[512, 512];for (int i = 0; i < 512; i++){for (int j = 0; j < 512; j++){arr[i, j] = 27000 + i + j;}}CalculationVarClass cvar = new CalculationVarClass();MWArray arrs = (MWNumericArray)arr;MWArray x = 512;MWArray y = 512;MWArray result = cvar.CalculationVar(arrs, x, y);string strResult = result.ToString();}catch (Exception ex){string error = ex.Message;}}

最后得到的结果是  209.0231   512.0000   512.0000

c#调用matlab生成的dll相关推荐

  1. vs2008中调用matlab生成的dll

    vs2008中调用matlab生成的dll matlab版本为:matlab7.11.0(R2010b) vs2008 1.在matlab中生成dll 在m文件中实现如下功能: 获得N个魔方矩阵的秩. ...

  2. qt调用matlab生成的dll库

    最近由于在项目中要用到matlab的算法,而用C++转换matlab算法非常麻烦,所以采用qt+matlab混合编程的方法,在使用中遇到了些许问题,特记录如下. 一.生成matlab库 1.首先需要下 ...

  3. C#调用Matlab生成的dll方法

    其实整个过程比较简单,但是需要心细一点. 需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安装一个MATLAB Compiler Runtime,这个文件(MC ...

  4. vc调用matlab生成的dll实例

    http://blog.csdn.net/ithzhang/article/details/7444563 转载于:https://www.cnblogs.com/burellow/archive/2 ...

  5. qt中调用matlab生成的动态库

    前言: 前面已经实现了在vc中调用matlab生成的动态库,请参考:vc中调用matlab生成的动态库 现在在前面已经生成好的matlab动态库的基础上,在qt中调用matlab生成的动态库.生成ma ...

  6. QT matlab 混编-qt调用matlab生成dll

    前言 环境: win10 Qt5.12 mingW(64位) matlab2019a(64位)----mingw w64 主要参考的文章:1. https://blog.csdn.net/Justic ...

  7. vc调用matlab生成的C++dll库总结。

    实验室的一个项目需要调用matlab程序.经过再三考虑,决定使用vc调用matlab导出库的形式.而我主要负责与matlab程序结合的工作.以下是今天工作的简要总结.全当是个备忘吧. 1:在matla ...

  8. CSharp调用Matlab编译的dll

    一.使用环境:Visual Studio 2010,Matlab7.11.0(R2010b),操作系统为64位,则对应的Matlab安装在Program Files文件夹下,而非Program Fil ...

  9. VC调用MATLAB 产生的dll文件

    1.当然是先建立matlab的m文件. 我在matlab中定义了一个函数, 其m文件如下: function re=add(C) N=73;alpha=(0.2)*(pi/2); Ts=sqrt(2* ...

最新文章

  1. python调用c++动态库 linux_linux中使用boost.python调用c++动态库的方法
  2. 分享一个外星人蓝屏的问题解决方法
  3. 公众平台模板消息所在行业_微信公众号模板消息功能怎么快速推送?
  4. 命令行运行Jmeter实例
  5. 的udp的接收端如何看速率_计算机网络 TCP与UDP
  6. java sleep 精度,java – Thread.sleep(x)是否足以在Android中用作时钟?
  7. 辅助驾驶等级_BBA霸榜、特斯拉折戟 E-NCAP辅助驾驶评测结果公布
  8. php:两个文件夹递归地比较,没有的文件自动复制过去
  9. mysql 相关操作
  10. 基于人脸识别的教室管理系统设计与实现
  11. python的if条件语句的用法及实例
  12. 小米--万物互联实现原理
  13. 题解 伊甸园日历游戏
  14. Socket套接字,一个简单的聊天室案例!
  15. 女神联盟2服务器停止注册,女神联盟2新区,平台几天开一次新区
  16. IT运维面试问题总结-LVS、Keepalived、HAProxy、Kubernetes、OpenShift
  17. swiper h5学习
  18. java 基础练习(1-5)
  19. 在职研究生计算机科学与技术考研考哪些科目,计算机在职研究生考试科目
  20. 2018年下半年系统集成项目管理工程师下午案例分析真题

热门文章

  1. 【计算机视觉】图像形成与颜色
  2. 日撸 Java 三百行(81-90天,CNN 卷积神经网络)
  3. 燕山大学数据结构二级项目实验报告
  4. python 源码编译 without_vcmi(魔法门英雄无敌3 - 开源复刻版) 源码编译(示例代码)...
  5. 2023年天津理工大学中环信息学院专升本专业课报名考试须知
  6. 88 java反射_4 _注解
  7. 搜索算法-深搜与广搜
  8. 设计模式的六大原则?
  9. 三大运营商已确定在19个城市启用5G网络
  10. 渐行渐远的老朋友们,谢谢你们曾经陪我走过