关于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的代码可以直接编译运行,那就很爽了!
就特性而言,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的代码可以直接编译运行,那就很爽了!
相关文章推荐
- 关于java 与 ajax之间调用的一些总结
- C++、Java和Matlab不同语言关于 y=(++x)+(++x);结果不同的问题
- 关于java 与 ajax之间调用的一些总结
- 关于如何实现C++跨平台的一些想法
- 关于JAVA和C++的一些总结
- C++、java和matlab最近使用的一些比较
- 【JAVA教程】关于增强visualvm的一些想法
- Java网络编程(二)关于Socket的一些个人想法
- 关于Java的一些想法
- 关于Java虚拟机装载类的一些想法
- 关于java常用类Math的一些用法:计算数的绝对值,两个值比较大小,取0~1之间随机数
- java并发:关于死锁我的一些想法
- Java和一些windows编程语言如c、c++、delphi所写的网络程序进行通讯时,需要进行高、低字节之间的转换
- 关于学习c++的一些想法
- 关于Java的一些NIO框架的一点想法
- [原]关于java的编码规范的一些想法
- Matlab与C/C++/Java的一些区别
- 【Java与C++之间的一些差异】之 方法重载
- 关于Java的一些NIO框架的一点想法
- 关于java中抽象类和接口的一些想法