C#中调用Matlab程序

1,matlab中建一个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

MATLAB R2007a中输入deploytool命令(matlab6.5中输入comtool),打开Matlab Build For .net窗口新建个工程,在此工程中“Add files”即填加test.m这个文件,build即可生成COM组件,为test.dll,即为我们将在C#中引用的COM组件。

Buildmatlab已经自动将此dll在注册表中注册

不过之前我们还需做一个准备工作,打开开始菜单运行,输入regsvr32 "matlab安装路径\bin\win32\mwcomutil.dll",即对mwcomutil.dll进行注册(这个dllmatlab下作的任何com组件都要用到的dll),下面我们在其他编译器下调用时就可以用了。

2,下面即可在C#中调用dll文件:

"引用"右击,选择浏览,找到test.dll,添加。
"
引用"右击,选择浏览,找到MWArray.dllmatlab安装路径\toolbox\dotnetbuilder\bin\win32\v2.0\MWArray.dll,添加。
再写入以下代码:
            test.testclass st = new test.testclass();
            MathWorks.MATLAB.NET.Arrays.MWArray m = 1, n = 2;
            st.test(m,n);

原文地址:https://www.cnblogs.com/gisdream/p/2142730.html