[转载] C# matlab联合编程简介
原作者 文月
主要操作说明:
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. 备注
更多的数据格式转换,请用matlab的help索引MWArray。
比如,MWNumericArray的构造函数页。关键是构造函数实现了两种数据格式的转换。
[转载] C# matlab联合编程简介的更多相关文章
- 转 Visual C++6.0 与matlab联合编程(2)----Visual C++6.0 环境下编译和调试MEX文件
我的最初想法是利用matlab的mex命令调用C++程序生成动态链接库的,但是测试程序(文中另附)通过了,自己的实际应用程序却没有过.还是把方法贴在这儿,以便自己以后进行整理. http://shij ...
- c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)
转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 . ...
- java matlab混合编程之返回值Struct类型
java matlab混合编程的时候当返回值是Struct类型(matlab中的返回类型)如何来取得(java中)其值? 上网找,看到这个网页:http://www.mathworks.cn/cn/h ...
- 《编程简介(Java) ·10.3递归思想》
<编程简介(Java) ·10.3递归思想> 10.3.1 递归的概念 以两种方式的人:男人和女人:算法是两种:递归迭代/通知: 递归方法用自己的较简单的情形定义自己. 在数学和计算机科学 ...
- VC 与Matlab混合编程之引擎操作详解
Visual C++ 是当前主流的应用程序开发环境之一,开发环境强大,开发的程序执行速度快.但在科学计算方面函数库显得不够丰富.读取.显示数据图形不方便. Matlab 是一款将数值分析.矩阵计算.信 ...
- OpenCL学习笔记(三):OpenCL安装,编程简介与helloworld
欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. OpenCL安装 安装我不打算 ...
- matlab混合编程向导(vc,vb,.net...)
一.matlab与vc混编 1.通过mcc将matlab的m文件转化为cpp,c文件或dll供vc调用: 这方面的实现推荐精华区Zosco和ljw总结的方法(x-6-1-4-3-1和2) ...
- 第二章 Matlab面向对象编程基础
DeepLab是一款基于Matlab面向对象编程的深度学习工具箱,所以了解Matlab面向对象编程的特点是必要的.笔者在做Matlab面向对象编程的时候发现无论是互联网上还是书店里卖的各式Matlab ...
- C语言与MATLAB接口 编程与实例 李传军编着
罗列一下以前自己学习C语言与MATLAB混编的笔记,顺便复习一遍. <C语言与MATLAB接口 编程与实例 李传军编着>(未看完,目前看到P106) 目录P4-8 ************ ...
随机推荐
- Codeforces 429B Working out(递推DP)
题目链接:http://codeforces.com/problemset/problem/429/B 题目大意:两个人(假设为A,B),打算健身,有N行M列个房间,每个房间能消耗Map[i][j]的 ...
- conding.net或github,readme.md添加图片
原因: 将图片放在仓库里面,在文件里链接它,最后 push 到 github 上.github 图片链接格式:(http://github.com/yourname/your-repositor ...
- Kafka ACL使用实战(单机版)
一.简介 自0.9.0.0.版本引入Security之后,Kafka一直在完善security的功能.当前Kafka security主要包含3大功能:认证(authentication).信道加密( ...
- MySQL学习笔记:删除存储过程和函数
删除存储过程.存储函数主要使用drop语句: drop procedure —— 删除存储过程 drop function —— 删除存储函数 语法: DROP {PROCEDURE|FUNCTI ...
- 2015309南皓芯实验二 Java面向对象程序设计
一.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 实验要求 1.没有Linux基础的同学建议先学习< ...
- java正则表达式(转)
1.验证email public static void main(String[] args) { // 要验证的字符串 String str = "service@xsoftlab.ne ...
- OnClickListener接口
package com.example.wang.testapp2; import android.support.v7.app.AppCompatActivity; import android.o ...
- 利用Metrics+influxdb+grafana构建监控平台
https://blog.csdn.net/fishmai/article/details/51817429
- CSharp中的?.运算符
在编译chromiumFX工程时候,编译失败,无法正常工作.是运算符 (?.)的错误,经过查找,该运算符 参考NULL 条件运算符(C# 和 Visual Basic) 用于在执行成员访问 (?.) ...
- USACO 6.3 Fence Rails(一道纯剪枝应用)
Fence RailsBurch, Kolstad, and Schrijvers Farmer John is trying to erect a fence around part of his ...