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

关于Matlab,C/C++和Java之间的一些想法

2005-07-02 22:18 609 查看
    我和Matlab打交道比较多,最近在学习Matlab外部程序接口的一些内容,让我又重回C/C++的世界,这里想写点粗浅的感觉,希望和大家探讨。
    就特性而言,Malab的过程性更浓一些,虽然有一些面向对象的元素。Matlab最大的好处是它使用统一的数据结构:矩阵(这感觉有点想Database的表结构),并且提供了丰富的数学运输函数(如求下三角矩阵,特征值特征向量等等)以及大量的工具箱(神经网络,DSP,金融等等)。这对以算法为核心的研究人员而言是再好不过的了。用Matlab写程序能很快实现,可读性很好,很容易将数值计算的公式和程序对应起来。但Matlab是解释性的,效率非常低,这点和Java比较类似(虽然Java并非纯粹解释性的语言)。
    但Matlab最大的问题还不在于此,而在于它无法生成脱离Matlab环境的可执行代码,就好像Java的咚咚都要JVM一样。说到这里,我还真怀疑Matlab本身是不是用C实现的,因为做使用过程经常出现一些Java异常的提示。为了生成可执行代码,Matlab开发了针对C/C++的数学函数库和Complier。但我觉得缺点还是很多。比如数学函数库只能在Matlab环境下编辑和编译,不方便调试;Complier则需要找到相关的所有库文件,非常麻烦;而且据说生成的可执行代码效率还是不高(这点我持怀疑态度);比起Java来,还要涉及到内存泄漏的问题等等。
 
    显然,系统开发方面C/C++相关系列和Java组件是最叫座的,而Matlab在科学计算上的优势也很明显。面对这一段锻漂亮的Malab代码,很是不愿意在系统开发过程中丢掉它们。希望有一天Matlab的代码可以直接编译运行,那就很爽了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息