2024年3月9日发(作者:)

由于matlab是一种解释性语言,所以在matlab程序中最忌讳直接使用循环语句,如

果不得已要使用for循环,可以采用以下方法提高速度。

1、使用6.5以上版本,对循环已作优化;

2、尽可能转化为矩阵运算;

3、转化为二进制执行文件运算,如使用matlab内带的编译系统或matcom以及com

组件技术。

其中com组件技术最方便的就是利用com builder来实现,这里重点介绍。

com builder是matlab6.5才有的,也是mathworks公司推荐使用于混合编程的,

这些日子进行了全方位的摸索,感觉是爽呆了,下面我们一起来揭开它的神秘面纱。

此系列分为以下几块:

下做com组件

,c#.net实现调用

实现调用

4.打包

5.优缺点评注

其中2,3部分可以选择一个看

matlab下做com组件

com是component object module的简称,它是一种通用的对象接口,任何语言只

要按照这种接口标准,就可以实现调用它。matlab6.5新推出来的combuilder就是把

matlab下的程序做成com组件,供其他语言调用。

我们先准备两个测试文件,并copy一个图片到c盘下,起名叫(这些你都可以

改的,我这儿是为了程序方便):

第一个叫im_test.m如下:

function im_test %这个文件不带输入与输出

I=imread('c:'); %因为以前带有imshow的程序用mcc编成dll后用不

%了,所以想试combuilder是否

imshow(I); %能支持这些函数

第二个叫split2rgb.m,就是前些日子Zosco发给我的那个程序,因为它用mcc编成

dll后有问题,所以我在这儿继续将它进行测试,而且它也带有多个输入及输出参数,所以

也正好拿来测试

在matlab的workspace下打comtool,就打开了matlab com builder,点击