具体方法有三步:
1,首先,利用Matlab Builder NE(Matlab中与.Net接口的组件)将Matlab函数打包到一个.net类里,然后再封装到.net组件里。(一个.net组件里可以包含多个.net类)。
方法是: 在matlab命令行下运行deploytool,在图形界面里选.net组件,然后进入一个工程目录的界面,新建工程,工程的名字就是.net组件的名字(例如testproj),在其下面的目录表示.net类名(例如testplot),在类名上点右键"Add File...",把Matlab的.m函数文件(例如plot1.m)选进去。
最后进行编译(Build the project),生成的目录下有以工程名命名的dll文件(例如testproj.dll)
2,进入Visual Studio 2008,建立的C#工程里,添加两个引用,
一个是<matlabroot>/dotnetbuilder/bin/win32/v2.0/mwarray.dll
另一个是工程本身的引用:上一步生成的testproj.dll
3, C#调用matlab函数的方法是:
(1)声明
using MathWorks.MATLAB.NET.Arrays;
using MathWorks.MATLAB.NET.Utility;
using test1proj; // .net组件名
(2)调用
testplot t=new testplot(); //.net类名
t.test1(); //点号后是调用的matlab方法名
补充说明:必须用Matlab 2008b以后的版本,用Matlab 2008a在创建对象时候会出现“System.TypeInitializationException”一类的异常,这应该是Matlab 2008a创建的dll的问题。