zoukankan      html  css  js  c++  java
  • 终于实现c#调用matlab函数(ZZ)

    终于实现c#调用matlab函数(ZZ)

    .net是微软的发展方向,以后我们开发软件的时候不免会调用一些matlab语言

    今晚一直在***图用c#调用matlab,终于成功。

    主要思想就是首先把matlab的m函数做成com组件,然后在c#中应用此com组件,即可。

    主要步骤如下:
    1.建一个m文件(test.m)
    例如:
    function test(h,D)
    for x=-10:0.1:10,
       if x>D
           y=h;
           hold on;
           plot(x,y)
       elseif x<-D
           y=-h;  
           hold on;
           plot(x,y)
       else
           y=h/(D*x);
           hold on;
           plot(x,y)
       end
    end

    2.在matlab中输入comtool命令,就打开了matlab com builder,

    点击file-new project,新建一个工程,

    在component name里输入名字 点击ok就行了。

    然后点击project--Add files,将test.m添加入工程,

    然后点Build-Com Object,就会在comtest\distrib\文件夹下生成一个test1_0.dll(它就
    是做好的com组件),

    Build时matlab已经自动将此dll在注册表中注册

    我们还需做一个准备工作,进入<matlabroot>/ bin/win32目录下(matlabroot为你机器上
    matlab安装的路径),打regsvr32 mwcomutil.dll ,即对mwcomutil.dll进行注册(这个dll
    是matlab下作的任何com组件都要用到的dll),下面 我们在其他编译器下调用时就可以用了


    3.c#下实现调用

         新建一个c#项目(我采用的是vs.net2003),选中右边的解决方案资源管理器中的引用
    ,点鼠标右键,选添加引用,在弹出来的窗口中选com,然后也找到test_1_0 .dll,点选
    择,然后确定就可,此时此com组件也添加到工程里面去了,同样我们可以选择


    然后编写程序

         test.testclassClass st=new test.testclassClass();
                 object m=1,n=2;
                 st.test(m,n);
    即可


    然后在c#中就出现了我们所想得到的图形,呵呵
  • 相关阅读:
    Oracle sql优化
    Oracle解决锁表语句与批量生成解锁语句
    使用Spring Task轻松完成定时任务
    oralce数据表空间满了
    关于出现 org.apache.commons.lang.exception.NestableRuntimeException的解决方法
    linux根分区满了如何处理,查找大文件方法
    bt协议详解 基础篇(上)
    如何做一个开心的程序员
    程序猿是如何解决SQLServer占CPU100%的
    SqlServer索引的原理与应用
  • 原文地址:https://www.cnblogs.com/zhangjun1130/p/1636638.html
Copyright © 2011-2022 走看看