找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4363|回复: 1
打印 上一主题 下一主题
收起左侧

C#调用matlab函数详细步骤和例程

[复制链接]
跳转到指定楼层
楼主
ID:252317 发表于 2018-9-14 17:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在项目过程中需要在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(文件目录为D:\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程序如下:
  1. function y=raicos(t)  
  2. result=2t;  
  3. end
复制代码
2.在C#中调用matlab的函数,使用上面的4个步骤,添加引用之后,C#程序如下:
  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. }  
复制代码

完整的Word格式文档51黑下载地址:
C#调用MATLAB.doc (254.5 KB, 下载次数: 20)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:796283 发表于 2020-7-6 09:51 | 只看该作者
除了绘制三维图形,能不能调用matlab程序最终的数据结果啊?vs写了上位机显示matlab的数据处理结果,这个可以吗?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表