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

    我和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的代码可以直接编译运行,那就很爽了!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值