许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  C#调用Matlab函数详细步骤及实例代码(附例程)

C#调用Matlab函数详细步骤及实例代码(附例程)

阅读数 10
点赞 0
article_banner

在项目过程中需要在ASP.NET页面显示三维效果的曲面图,因C#中没有相关的控件(暂时没找到),需要调用其他软件实现此功能,实现的方法有多种,这里只介绍在C#中调用matlab函数,实现绘制三维图的功能。当然,matlab还有强大的数据处理能力,如果在C#中涉及到处理大量数据,也可以通过该方法调用matlab函数。

      系统平台:matlab2013a(破解的2013b未破解完全,谨慎使用)

                          VS2010

      注意:将来使用调用matlab的C#程序时候,可以不安装matlab程序,但必须安装matlab的运行环境,即MCRinstall文件,这个在matlab安装包里面一般可以找到。

      操作步骤:1.在matlab的command窗口输入mbuild(留空格)-setup,选择编译器,这里要选择我们打算调用matlab的软件,即VS2010;然后在command窗口输入deploytool命令,同样选择编译环境为VS2010。之后,会弹出下图1所示界面。注意:这里的Name就是C#里要调用的dll文件名,Location就是查找dll文件的位置,Type要选择.NET Asembly,点击OK按钮。

图1

                       2.出现下图所示的页面,点击Add Class添加类,这里注意修改默认的Class类名,Class类名就是我们在C#中要使用的类名称,自己要记下来。修改完类名点击Add file添加我们要使用的m文件,如图3所示,这里m文件的名称就是我们在C#中要使用的类的成员函数,也要把这个名称记下来。之后,点击图3右上方的编译按钮,就会出现图4的页面,等待出现build finished即可(时间会有点长,要5-10分钟)。这样,我们在MATlab环境下的操作就完成了,请摄像机把镜头切换到VS2010环境中~~~

图2

图3


图4

                              3.打开C#程序的“设计”页面,在“解决方案资源管理器”里添加“引用”,打开图5所示的界面,这里至少要添加两个dll文件,一个是MWArray.dll(文件目录为https://www.gofarlic.com\MATLAB\R2011b_x64\toolbox\dotnetbuilder\bin\win64\v2.0),另一个是我们自己生成的dll文件(目录在图1Location中指定的)。

图5

                          4.在ASP.NET的***.aspx.cs页面下,要注意添加dll文件的至少2个命名空间,一个是using MathWorks.MATLAB.NET.Arrays;另一个是我们自己生成的dll文件的命名空间,如using TuShowOut;

                          一个简单的例程:建议先使用一个最简单的例程测试一下我们前面所设置的编译环境是否正确,不要直接调用项目中用到的复杂的matlab函数。

                          1.matlab程序如下:

[plain]view plain copy      


  1. function y=raicos(t)  
  2. result=2t;  
  3. end  


               2.在C#中调用matlab的函数,使用上面的4个步骤,添加引用之后,C#程序如下:

[csharp]view plain copy      


  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using MathWorks.MATLAB.NET.Arrays;//系统dll文件  
  8. using Demodll;//自己生成的dll文件  
  9. namespace WebApplication1  
  10. {  
  11.    public partial class WebForm26 : System.Web.UI.Page  
  12.    {  
  13.        protected void Page_Load(object sender, EventArgs e)  
  14.        {  
  15.            demo h = new demo();//demo为class名称,h为定义的成员函数  
  16.            MWArray x;//定义x为矩阵变量,将普通数转化为matlab能识别的类型  
  17.            x = demo.raicos((MWArray)i);//调用matlab里的raicos函数  
  18.        }  
  19.    }  
  20. }  


  21. 免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删
相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空