原作者  文月

主要操作说明:

1. 找到matlab安装目录下的MCRInstaller.exe安装

MCRInstaller.exe 在安装目录下的 ..\MATLAB7\toolbox\compiler\deploy\win32\中;

2. 将写好的matlab的.m文件转换为动态链接库

2.1 编辑M文件

比如写了.m文件 f.m。其中的function C=f(A,B)实现的是C=A+B

function C=f(A,B)

C=A+B;

end

2.2 在matlab的命令窗口中输入deploytool

2.3 选择file-NewDeployment Project

2.4 选择MATLAVB Builder NE, .NET Component

然后OK

2.5 添加一个类

按‘添加类’,之后弹出对话框,输入类名,确认后,按‘添加m文件’,添加.m文件。

确认后。按”链接“。即可在matlab的工作目录中看到新建的对应这个工程名的文件夹,打开其中的distrib文件夹,可以看到f.ctf和f.dll两个文件,将这两个文件拷贝到c#工程的工作目录中。

3 C#中添加引用

在c#工程右侧的解决方案资源管理器中,鼠标右击“引用”,选择“添加引用”,然后选择浏览,找到刚才放到C#工程中的.dll文件。选中确定。引用部分则会显示f。并且引用C:\Program
Files\MATLAB\R2008a\toolbox\dotnetbuilder\bin\win32\v2.0中的MWArray.dll。然后引用中出线MWArray的引用。

在c#文件起始部位添加如下代码

using MathWorks.MATLAB.NET.Arrays;

using MathWorks.MATLAB.NET.Utility;

using f;

 

4 数据格式转换与使用

4.1 数据格式转换

fclass mfuntion = newfclass();

double[]a={1,2,3,4,5,6};

double[]b={2,4,6,8,10,12};

double[,] c;

MWNumericArray mA = newMWNumericArray(3, 2, a);           
MWNumericArray mB = newMWNumericArray(3, 2, b);

MWNumericArray mC=(MWNumericArray)mfuntion.f(mA,
mB);            c=(
double[,])mC.ToArray(MWArrayComponent.Real);

4.2 为按钮click事件添加完整的代码

fclass mfuntion = new fclass();

double[] a = { 1, 2, 3, 4, 5, 6 };

double[] b = { 2, 4, 6, 8, 10, 12
};

double[,] c;

MWNumericArray mA = new
MWNumericArray(3, 2, a);

MWNumericArray mB = new
MWNumericArray(3, 2, b);

MWNumericArray mC =
(MWNumericArray)mfuntion.f(mA, mB);

c = (double[,])mC.ToArray(MWArrayComponent.Real);

int row = c.GetLength(0);

int col = c.GetLength(1);

string text = "\r\n";

for (int i = 0; i < row; i++)

{

for (int j = 0; j < col;
j++)

text += Convert.ToString(c[i, j]) +
' ';

text += "\r\n";

}

textBox1.Text = text;

5. 备注

更多的数据格式转换,请用matlabhelp索引MWArray。

比如,MWNumericArray的构造函数页。关键是构造函数实现了两种数据格式的转换。

[转载] C# matlab联合编程简介的更多相关文章

  1. 转 Visual C++6.0 与matlab联合编程(2)----Visual C++6.0 环境下编译和调试MEX文件

    我的最初想法是利用matlab的mex命令调用C++程序生成动态链接库的,但是测试程序(文中另附)通过了,自己的实际应用程序却没有过.还是把方法贴在这儿,以便自己以后进行整理. http://shij ...

  2. c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

    转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 . ...

  3. java matlab混合编程之返回值Struct类型

    java matlab混合编程的时候当返回值是Struct类型(matlab中的返回类型)如何来取得(java中)其值? 上网找,看到这个网页:http://www.mathworks.cn/cn/h ...

  4. 《编程简介(Java) &#183;10.3递归思想》

    <编程简介(Java) ·10.3递归思想> 10.3.1 递归的概念 以两种方式的人:男人和女人:算法是两种:递归迭代/通知: 递归方法用自己的较简单的情形定义自己. 在数学和计算机科学 ...

  5. VC 与Matlab混合编程之引擎操作详解

    Visual C++ 是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便. Matlab 是一款将数值分析.矩阵计算.信 ...

  6. OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. OpenCL安装 安装我不打算 ...

  7. matlab混合编程向导(vc,vb,.net...)

    一.matlab与vc混编  1.通过mcc将matlab的m文件转化为cpp,c文件或dll供vc调用:     这方面的实现推荐精华区Zosco和ljw总结的方法(x-6-1-4-3-1和2)  ...

  8. 第二章 Matlab面向对象编程基础

    DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...

  9. C语言与MATLAB接口 编程与实例 李传军编着

    罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...

随机推荐

  1. new Function和eval区别

    eval和new Function都可以动态解析和执行字符串.但是它们对解析内容的运行环境判定不同. eval中的代码执行时的作用域为当前作用域.它可以访问到函数中的局部变量. new Functio ...

  2. C#连接mariadb代码及方式

    不负责任的说MariaDb和MySQL很多都是通用的,因为来自同一个爹... 和MySQL连接方式差不多 首先配置好你的MariaDb,创建test数据库,在test里创建MyTable表,脚本如下( ...

  3. GridView监听器

    package com.example.wang.testapp2; import android.os.Bundle; import android.support.v7.app.AppCompat ...

  4. USACO 6.3 Cryptcowgraphy

    CryptcowgraphyBrian Dean The cows of Farmer Brown and Farmer John are planning a coordinated escape ...

  5. Tomcat基于MSM+Memcached实现Session共享

    简述 上一篇文章,分别演示了session sticky 和 session cluster来实现会话保持的问题,但是它们缺点都不少,实际中用的很少,所以这篇文章我们还是通过Tomcat来演示一下实际 ...

  6. 使用odbc时报错,驱动程序和应用程序之间的体系结构不匹配

        当出现这个问题时说明:ODBC程序中使用的是32位的dsn,但本身机器是64位,所以要运行 C:\Windows\SysWOW64\odbcad32.exe来改变本身机器使用的odbc

  7. doc元素select 取值

  8. Linux 服务器上Redis安装和配置

    1.下载安装redis 在Linux服务器上,命令行执行以下命令(cd ./usr local/src 一般源码放在这里(推荐源码安装)) wget http://download.redis.io/ ...

  9. JAVAEE——宜立方商城06:Redis安装、数据类型和持久化方案、Redis集群分析与搭建、实现缓存和同步

    1. 学习计划 1.首页轮播图展示 2.Redis服务器搭建 3.向业务逻辑中添加缓存. 4.使用redis做缓存 5.缓存同步. 2. 首页轮播图动态展示 2.1. 功能分析 根据分类id查询内容列 ...

  10. Mac 上关于TFTP Server 软件的使用

    软件下载地址 http://ww2.unime.it/flr/tftpserver/ 软件下载后进行安装,打开软件, 如果出现如下图所示情况 然后当你点击蓝色的Fix 按钮时,如果又出现如下提示 这时 ...