您的位置:首页 > 编程语言 > MATLAB

C#调用MATLAB的COM组件中如果调用非自带的工具箱函数

2015-07-31 15:53 441 查看
        C#由于其良好的界面性,通常作为显示界面。MATLAB强大的计算能力,通常用来做运算。那么把它们进行混合编程,可以发挥各自的长处。

        本人的软件版本:Visual Studio C#2005

                               MATLAB   7.11.0(R2010b)

        本人的需要是在MATLAB中编写时间序列的SVM预测算法,将函数打包,在C#中进行调用。它们的调用可以有.net和COM组件。经过测试,我的版本只能打包使用COM组件。因为MATLAB中没有LsSVM的工具箱,所以这是从网上下载的工具箱。

        至于C#与MATLAB混合编程中的COM组件生成,在网上一搜一大堆。

        主要是打包后调用的类函数总是报错,用try试了一下,catch到的错误是lssvm工具箱中的函数,但是我都已经在MATLAB中安装好了这个工具箱了,为什么还报错呢?这样是不是就意味着如果你要打包的话,MATLAB自带的工具箱和自己安装的工具箱还是有区别的?现在我也不敢下定结论,但是从这一方面入手,我确实解决了自己所遇到的问题。

        接下来就是在打包COM组件的时候,定义好类名,Add files后,在页面的下面还有一个可以添加的选项,就是这个 Shared Resources and Helper Files,在这个里添加自己工具箱中所调用的函数,

        我自己的是又添加了 :crossvalidate.m 、 crossvalidatelssvm.m  、mae.m  、tunelssvm.m

果然将这些自安装工具箱中所用到的函数同时打包后就可以顺利在C#中调用此COM组件中的类函数了。

       所以,切记,在打包MATLAB的COM组件时,为了以防万一,将非MATLAB自带的工具箱中的函数一起打包。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: