网站设计网页首页介绍,如何搭建微信公众号平台,蚌埠网站建设,农产品网站建设方案前言:
本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。
本文缩语:
MT = Matlab 问题提出: 1 我们有一个比较复杂的Matlab文件: 这个MATLAB的算法,写了很多的算法函数在其他的M文件里面,这样,前面博客的方法就不够用了。会报错: 解决办法如下…前言:
本节我们尝试将一个有很多函数和文件的Matlab算法文件集成到C#的项目里面。
本文缩语:
MT = Matlab 问题提出: 1 我们有一个比较复杂的Matlab文件: 这个MATLAB的算法,写了很多的算法函数在其他的M文件里面,这样,前面博客的方法就不够用了。会报错: 解决办法如下: 写在前面的结论:
1 你要用一个外壳函数,封装你的最上层的M文件
2 去掉不必要的M文件间的耦合,把M文件的参数都写到外壳函数上 步骤:
1 编译:
1.1 常规操作:多入口报错 【报错】只能接受具有单个入口函数的 MATLAB 函数和 MEX 文件作为导出函数。未添加以下文件因为它们不是可接受的文件类型,或者包含在 MATLAB 根目录下: MT ,显然不支持多个入口函数的Matlab的源码:
【解决办法,封装成一个大函数】用一个function包起来就好了
function ballfitting(fname)
% Your code here
end
这里笔者,
1.1.1 还没有MT的输出参数的传递。
在MT命令行窗口调用deploytool 对C#的输出,MT里面我们选取如下:
1using the Matlab .NET Assembly 上图中,是没有MATLAB的输出参数的情况:但是,已经自动,把所有的MT相关的原文件都加了。
1.1.2有MT的输出参数的传递的外壳函数封装。
function [centers,angle_degree] = findid_v1(filename)... // your codeend
上面,
笔者给MT的外壳函数加了2个输出的的变量,和一个输入变量。
注意:外壳函数的现在的名称,findid_v1似乎没啥用,即使在C#调用,也没有用到。
然后,我们调用在MT中,命令行调用,deploytool,和前面一样。 上图,自动,把所有的MT相关的原文件都加了的同时,大家应该注意到,
类MTFindid,多了两个输入的参数。
1.2 注意库的版本,最好每次更新M的原文件的时候,选择更新一下版本号