c#与matlab混合编程

11 篇文章 0 订阅

众所周知,matlab可以很简单的把数据生成图像,而c#则相对麻烦一些。但如果用c#处理和生成数据文件,利用matlab来调用数据,生成图像则不失为一个很好的思路。我在帮助同学做矿山开采预计可视化系统时就是利用以上思路。具体步骤如下:

打开matlab 建立一个surfplot.m,用于生成塌陷的三维立体图像。代码如下:

 

function surfplot()
filename='C:/date/xyw.xls';
% 读取x
temp_x=xlsread(filename,'Sheet1','A1:A60501');
[m,n]=size(temp_x);
xx=zeros(1,301);
%xx(1)=temp_x(1);
jj=1;
for i=1:201:m
    xx(jj)=temp_x(i);
    jj=jj+1;
end

% 读取y
yy=xlsread(filename,'Sheet1','B1:B201');

% 读取z
temp_z=xlsread(filename,'Sheet1','C1:C60501');
[m,n]=size(temp_z);
zz=zeros(201,301);
ii=1; jj=1;
for i=1:1:m 
   zz(ii,jj)=temp_z(i);
   ii=ii+1;
   if rem(i,201)==0      
       ii=1;
       jj=jj+1;
   end
end
mesh(xx,yy,zz,'LineWidth',10),axis([3000 10000 2000 7000 -800 200]),colorbar;
end

 

接下来在matlab中输入命令:deploytool。输入名称如:W_3dim.prj   Target选择.NET Assembly 。

选择【Add Class】

添加 在class1中添加surfplot.m文件。编译生成surfplot.dll文件

 

打开vs2008 。添加引用。

分别引用surfplot.dll 和MWArray.dll

 

命名空间中加入:

using MathWorks.MATLAB.NET.Utility;    

using MathWorks.MATLAB.NET.Arrays;  

using surfplot

 

 

按钮“生成图像”

 class1 c=new class1();

 c.surfplot();

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值