本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。
本文缩语:
MT = Matlab
这个MATLAB的算法,写了很多的算法函数在其他的M文件里面,这样,前面博客的方法就不够用了。会报错:
【报错】只能接受具有单个入口函数的 MATLAB 函数和 MEX 文件作为导出函数。未添加以下文件因为它们不是可接受的文件类型,或者包含在 MATLAB 根目录下:
MT ,显然不支持多个入口函数的Matlab的源码:
【解决办法,封装成一个大函数】用一个function包起来就好了
function ballfitting(fname)
% Your code here
end
这里笔者,
在MT命令行窗口调用deploytool
对C#的输出,MT里面我们选取如下:
1 using the Matlab .NET Assembly
上图中,是没有MATLAB的输出参数的情况:但是,已经自动,把所有的MT相关的原文件都加了。
function [centers,angle_degree] = findid_v1(filename)
... // your code
end
上面,
笔者给MT的外壳函数加了2个输出的的变量,和一个输入变量。
注意:外壳函数的现在的名称,findid_v1似乎没啥用,即使在C#调用,也没有用到。
然后,我们调用在MT中,命令行调用,deploytool,和前面一样。
上图,自动,把所有的MT相关的原文件都加了的同时,大家应该注意到,
类MTFindid,多了两个输入的参数。