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自带的工具箱中的函数一起打包。
本人的软件版本: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自带的工具箱中的函数一起打包。
相关文章推荐
- MATLAB下使用libsvm (三)
- matlab 矩阵代替for循环
- MATLAB格式化输出控制
- 基于MATLAB的阔叶树叶片智能识别
- MATLAB符号运算
- Matlab中C-mex与CUDA环境的配置
- 解决——Matlab中文显示乱码
- Matlab--统计图的绘制
- 未解——Matlab solve函数
- 关于如何在matlab中添加新的工具箱的整理
- [转载] 关于matlab GUI的一点心得
- 解决办法:matlab Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap
- 未解——Matlab积分运算int函数
- Matlab--随机变量的数字特征
- MATLAB读取写入Excel表格内容
- 编写 Matlab mexFunction (C mex)
- [转载] C# matlab联合编程简介
- 使用Matlab对灰度图像编程实现2D的傅里叶变换
- MATLAB view函数详解
- 一个Matlab中批量处理文件的实例