• / 6

Visual-C#与Matlab混合编程示例(含代码).docx

配套讲稿:

如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

特殊限制:

部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

关 键  词:
Visual-C#与Matlab混合编程示例(含代码).docx
资源描述:

《Visual-C#与Matlab混合编程示例(含代码).docx》由会员分享,可在线阅读,更多相关《Visual-C#与Matlab混合编程示例(含代码).docx(6页珍藏版)》请在微传网上搜索。

1、Visual C# 与 Matlab 混合编程由于 Visual C# 与 Matlab 混合编程的资料并不多, 本文通过一个实例来阐述 Visual C# 与 Matlab 混合编程的方法。一、混合编程的4 种方式1. 通过从 Matlab 的*.m 文件中生成 C 语言版本的 DLL1) 在 Matlab 中写好 m 文件;2) 使用 Matlab 的编译器,编译为 C#能识别的 DLL 文件;3) 建立 C#工程,在工程中引用上一步生成的文件;。

2、2. C# 调用 Matlab 工作区计算并返回结果主要使用 engOpen, engClose, engPutVariable, engEvalString,engGetVariable 函数进行操作。大致过程如下 : MatlabCSharp.engPutVariable(ep, "ml_a", mx_a); MatlabCSharp.engPutVariable(ep, "ml_b", mx_b); MatlabCSharp.engEvalString( ep, "ml_c = ml_a + ml_b ;" ); mx_c = MatlabCSharp.eng。

3、GetVariable(ep, "ml_c" );3. 使用 Matlab DeployTool生成 COM 组件1) 单击菜单 New Deployment Project -> MATLAB Builder NE ->Generic COM Component2) 添加相应的 M 文件3) 保存,编译4) 新建 C# 工程,引用生成的 DLL 文件。4. 使用 Matlab DeployTool生成 .Net 组件1) 单击菜单 New Deployment Pro。

4、ject -> MATLAB Builder NE -> .Net Component2) 添加相应的 M 文件3) 保存,编译4) 新建 C# 工程,引用生成的 DLL 文件。由于 Matlab 与 C# 的数组有一定的差别,但传递参数时,要转换成 Matlab 的参数类型,因此要加入以下两句。using MathWorks.MATLAB.NET.Arrays;using MathWorks.MATLAB.NET.Utility;而且要添加MWArray这个Re。

5、ference,一般安装完MATLABBuilderNE就有了,目录为:/toolbox/dotnetbuilder/bin/win32/v2.0/MWArray.dll。由于第四种方式用的最多,下面以第四种方式,阐述Visual C#与 Matlab 混合编程的过程。二、 Visual C# 与 Matlab 混合编程的过程(一)生成 .NET DLL 文件1. 编写 Matlab M函数。

6、function [tsum] = sumab(a, b)tsum = sum([a,b]);将以上函数保存为sumab.m文件。2.建立 Matlab 工程1)单击 File->New->DeploymentProject 菜单,出现下面的窗体:输入工程名 test_combination_matlab_c,选择 MATLAB Bui。

7、lderNE->.NET Component ,然后点击 OK 按钮。2)将 sumab.m 文件加入工程,点击 Deployment Tool 窗体的 settings 按钮,如下图所示:在出现的窗体中, 设置 .NET Framework 版本,其版本号一定要与 C# 所用的版本号一致 ,否则,会出问题。。

8、3.编译matlab工程。点击Build按钮,编译工程。编译后,在工程目录下的。

9、Distrib子目录里生成 C# 中使用的 DLL 文件 test_combination_matlab_c.dll。(二)在 C# 中调用 matlab 中的 M 函数1. 引用 matlab 中生成的 DLL 文件。打开 Visual Studio, 新建一个 Windows Application 类型的 C# 工程,笔者建的是 Test 项目。建好后,在 Solution Explorer 里,鼠标右键单击 References->Add References->Browse, 加入生成的test_comb。

10、ination_matlab_c/Distrib/test_combination_matlab_c.dll;重 复 操 作 , 再 加 入Matlab目 录 下 的 另 一 个dll文 件 ,/toolbox/dotnetbuilder/bin/win32/v2.0/MWArray.dll。Form 里面,加入三个 Label ,二个 Textbox 组件以及一个 Button组件,如下图所示:。

11、2. 编写代码注意要引入 MWArray.dll 和 test_combination_matlab_c.dll的命名空间。代码如下:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Text;using System.Windows.Fo。

12、rms;// 引入 命名空间using MathWorks.MATLAB.NET.Arrays;using MathWorks.MATLAB.NET.Utility;using test_combination_matlab_c;namespace Test{publicpartialclassForm1 :Form{publicForm1(){InitializeComponent();}privatevoid button1_Click(objectsender,。

13、EventArgs e){Test_combination_matlab_csumob = newtest_combination_matlab_c.Test_combination_matlab_ctry();{// 整数示例MWArray a = (MWNumericArray) new int []{ System.Convert .ToInt16(textBox1.Text) };MWArray b = (MWNumericArray) new。

14、 int []{ System.Convert .ToInt16(textBox2.Text) };MWNumericArray c = ( MWNumericArray)sumob.sumab(a, b); this .label2.Text = c.ToString(); // 数组示例MWNumericArray aa =new int[2, 2] { { 1, 2 }, { 3, 4 } };MWNumericArray bb =new int[2, 2] { { 5, 6 }, { 7, 8 } };MWArray cc;cc = sumob.sumab((MWArray)aa, (MWArray)bb);this .label4.Text = cc.ToString();}catch (System.FormatException){ }}}}3. 编译和运行程序。程序运行结果如下图所示:。

展开阅读全文
  微传网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
0条评论

还可以输入200字符

暂无评论,赶快抢占沙发吧。

关于本文
本文标题:Visual-C#与Matlab混合编程示例(含代码).docx
链接地址:https://www.weizhuannet.com/p-11848759.html
微传网是一个办公文档、学习资料下载的在线文档分享平台!

网站资源均来自网络,如有侵权,请联系客服删除!

 网站客服QQ:80879498  会员QQ群:727456886

copyright@ 2018-2028 微传网版权所有

     经营许可证编号:冀ICP备18006529号-1 公安局备案号:13028102000124

收起
展开