C#调用Matlab生成的dll方法的详细说明

  其实整个过程比较简单,但是需要心细一点。

  需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安装一个MATLAB Compiler Runtime,这个文件(MCRInstall.exe)在安装完MATLAB之后就会在安装文件夹下存在,需要搜索一下(因为不同版本的MATLAB可能存放位置不同),把它安装一下就OK了。

  接下来在MATLAB中写一个m文件,当然是一个函数啦。然后在matlab命令行下运行deploytool,在图形界面里选.net组件,然后进入一个工程目录的界面,新建工程,工程的名字就是.net组件的名字(例如sinfit),在其下面的目录表示.net类名(例如sinfit),在类名上点右键"Add File...",把Matlab的.m函数文件(例如sinfit.m)选进去。最后进行编译(Build the project),生成的目录下有以工程名命名的dll文件(例如sinfit.dll)。OK,dll生成好了。

  接下来打开VS,导入两个dll,一个前面生成的那个dll,一个是<matlabroot>/dotnetbuilder/bin/win32/v2.0/mwarray.dll(如果找不到就搜一下)。然后在工程里加入下面的引用:

  using MathWorks.MATLAB.NET.Arrays;
  using MathWorks.MATLAB.NET.Utility;
  using sinfit;

  OK,可以用了,用法是实例化一个sinfit的对象,然后调用里面的matlab函数,不过有一个问题需要注意的是,matlab的输入和输出数据都是矩阵,很特殊,在.net中叫做MWArray,它还有一个子类叫做MWNumericArray,它们的使用方法简单说明如下:

  创建一个MWNumericArray对象的方法:MWNumericArray para = new MWNumericArray(MWArrayComplexity.Real, 4, 2);这样就创建了一个矩阵,如果要把它映射给一个double型的二维数组,则需要创建数组double[,] temp = new double[2, 4];这个地方就要注意了,正好反过来。然后如果是MWNumericArray赋给double[,]的话可以采用MWNumericArray的ToArray方法,如double[,] paras = (double[,])para.ToArray(MWArrayComponent.Real);其中para是MWNumericArray对象。如果是double[,]赋给MWNumericArray的话,那就直接赋值就OK了。

(0)

相关推荐

  • C#生成DLL文件的方法

    本文实例讲述了C#生成DLL文件的方法.分享给大家供大家参考.具体分析如下: Visual C#生成DLL文件 VisualC.Delphi或者VB等编程语言来编写的DLL文件,在编译完成以后,产生DLL文件已经是一个可以直接供计算机使用的二进制文件.但用Visual C#编译器生成的受管代码虽然也是二进制文件,但不是可以直接供计算机使用的原始代码,实质上是一种中间语言(IL)代码,需要经过"下一代窗口服务"( Next Generation Windows Services,简写为N

  • windows中使用C# 调用 C语言生成的dll

    首先建立一个C语言源文件test.c void swap(int* a, int* b) { int c = *a; *a = *b; *b = c; } 然后下载mingw64,解压,进入到bin目录,查看是否有gcc.exe ,只要下载正确肯定是有的,可以把这个bin目录加入环境变量,就可以在任意地方运行gcc.偷懒的做法是直接把刚才做好的test.c复制到这个bin目录中,和gcc.exe在一个目录,然后在此目录下,按住shift键不松,再在空白处点击鼠标右键,就可以在右键菜单看见"在此目

  • VS2015 C#生成dll文件的方法(32/64)

    下面就为大家分享一下在vs2005中生成dll文件的步骤图文版 新建项目> 模板 > windows > 类库 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibrary2 { public class Class1 { private int _age; public i

  • C#生成DLL文件的方法小结

    使用csc命令将.cs文件编译成.dll的过程 很多时候,我们需要将.cs文件单独编译成.dll文件, 操作如下: 打开命令窗口->输入cmd到控制台->cd C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322 转到vs.net安装的该目录下->执行csc命令csc /target:library File.cs->在该目录下产生一个对应名字的.dll文件(前提:把.cs文件放到C:\WINDOWS\Microsoft.NET\Framewor

  • C#调用Matlab生成的dll方法的详细说明

    其实整个过程比较简单,但是需要心细一点. 需要的工具:VS2005及以上版本,MATLAB2008B及以上版本,另外非常重要的需要安装一个MATLAB Compiler Runtime,这个文件(MCRInstall.exe)在安装完MATLAB之后就会在安装文件夹下存在,需要搜索一下(因为不同版本的MATLAB可能存放位置不同),把它安装一下就OK了. 接下来在MATLAB中写一个m文件,当然是一个函数啦.然后在matlab命令行下运行deploytool,在图形界面里选.net组件,然后进入

  • Java如何调用Matlab程序

    目录 Java如何调用Matlab程序 1. 检查Matlab内置的Java版本和系统安装的Java版本是否一致? 2. 准备一份要调用的Matlab代码 3. 将Matlab代码打包成Jar包 4. 新建Java项目,调用由Matlab得到的Jar包 Java调用Matlab函数笔记 1.在命令行中输入deploytool 2.点击上图中标有红框的部分 3.选择javapackage,依次填写name,classname 4.编写java类,进行测试 5.调用有返回结果的函数 Java如何调用

  • C#调用JS的几种方法

    cmd调用phantomjs 官方资料:http://phantomjs.org/quick-start.html 手动执行 从官方下载phantomjs.exe,拷贝它与要执行的js同目录 打开cmd,输入命令行(参考官方资料的命令行) phantomjs XX.js 参数1 参数2 获得结果 使用C#执行 //注意:保证phantomjs.exe和js在生成目录下存在 string url = "传参"; //这里调用cmd.exe Process pProcess = new P

  • Python根据指定文件生成XML的方法

        因项目需要根据指定格式的文件生成XML标注文件,可以方便使用LabelImg打开进行编辑和查看.其原始文件默认使用逗号进行分隔,如下所示: 第1个值:原始图片中切图小文件,以AIpng_x,其中x代表原始图片的第几个切图文件 第2~5值:分别对应于ymin, xmin, ymax, xmax 第6个值:代表对应的标签标注     在生成XML文件时,需要对其进行汇总,即将属于同一个原始文件的切图小文件的标注汇总到一起,其实现代码如下所示: import os from Logger im

  • VUE使用axios调用后台API接口的方法

    引言 Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式JavaScript框架.与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用.Vue 的核心库只关注视图层,方便与第三方库或既有项目整合.我们都知道VUE更多是注重前段用户界面的渲染合操作,但是如果想到实现前后端之间的交互调用后台API,就需要借助其他组件,如今天要讲到的Axios,下边就重点讲解axios在vue中的使用. Axios,基于 Promise 的 HTTP 客户端,可以工作于浏览器中,

  • python 调用Google翻译接口的方法

    一.网页分析 打开谷歌翻译链接:https://translate.google.com/ 按F12,点击network.在左侧输入"who are you" 可以看到,请求的链接为: https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?rpcids=MkEWBc&f.sid=-2609060161424095358&bl=boq_translate-webserver_202012

  • C#生成PDF的方法

    之前项目中是通过wkhtmltopdf渲染web页面生成的pdf文件,这个方案一直不是很稳定,并且在不同的场景样式也常不一样,老需要调整. 今天研究了一下C#直接生成PDF的方案,还是比较简单的,整体方案如下: 通过WPF库生成XPS文件 通过PdfSharp将XPS文件转成PDF文件 首先看一下生成xps文件的代码.,代码如下: var fixedDoc = new FixedDocument(); var pageContent = new PageContent(); var fixedP

  • windows系统下C++调用matlab程序的方法详解

    前言 之前已经跟大家介绍了在ubuntu系统下C++调用matlab程序的方法,需要的朋友们可以参考这篇文章,本文将给大家介绍关于windows下C++调用matlab程序的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. 实验平台: matlab R2016b   VS2013 思路: 1. 设置matlab的编译器,使用外部的VC或者gcc等编译器. 2. 编译m文件成dll 3. 设置VS的Include路径和lib链接库的路径 4. 编写C++调用dll 步骤:

  • WPF调用Matlab函数的方法

    有的时候用C#写图像处理方法,比较费事,不如Matlab简单,但是Matlab又做不出WPF那样的好看界面,怎么办呢. 今天正好我要实现这个功能,就顺便写个小例子,给需要的人做个借鉴. 想要用WPF调用Matlab代码,就用到了Matlab生成.DLL文件的功能. 注:我的VS版本是2013,Matlab版本是2012a,两个软件不算新也不算老,应该是现在普遍用的版本 首先,生成Matlab的.DLL文件 在matlab的左下角选择start-matlab-NE-deploytool,或者直接在

  • VS2010中lib与dll文件的生成与使用方法

    一. lib文件的简介 .lib是一种文件后缀,是Windows操作系统的库文件,有静态lib和动态lib之分: 1).静态lib文件:将导出的文件的声明和实现都放在lib文件中,此时lib文件主要包含函数的实现部分(cpp文件),例如类的函数定义.使用时只需配合相关的头文件,编译后程序将lib文件中的代码嵌入到宿主程序中,也就是最后的exe文件中,此时移除lib文件,程序可以正常运行,即编译后就不需要lib文件的支持了. 2).动态lib文件:相当于是一个h头文件,用于支持相应的dll文件的运

随机推荐