- 积分
- 1597
- 贡献
-
- 精华
- 在线时间
- 小时
- 注册时间
- 2015-4-6
- 最后登录
- 1970-1-1
|
登录后查看更多精彩内容~
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
编程语言是部车,你选了其中哪辆?其中说到,Fortran是一辆非常简单的车,它能跑的很快,但条件是你必须沿着一条非常直的路开。很多人都相信,一旦学会了开Fortran车,你就不可能再学会开其它类型的车。Matlab是一款为初学者设计的车,它能跑不是很长的路程,跑在类似Mathematica车能跑到那种地形上。在这种地形上它驾驶起来很舒适,但绝对不能跑偏,否则你很难控制。正因为如此,势利小人甚至拒绝承认它是一部车。Python是一款绝佳的新手来开的车,开它你可以不要驾驶证。除非你想跑的特别快或想跑在未知的险恶地形上,你基本上不需要其它的车。那么,问题来了,对一个初学者,matlab与fortran如何选择?matlab更容易,fortran更快。
matlab相比Fortran,更加适合初学者,其脚本语言特点是一句一执行,适合没有任何编程经验的人学习,但是,随着处理数据量的增大,会出现两个基本问题,大矩阵造成的内存不足以及多层循环造成的时间开销大。对全球高分辨率空间数据动辄上万*上万的矩阵,笔者曾经在svd分析时耗时间很久,16g内存的电脑在matlab运行时基本卡住,无法干活;也处理过三天还没出结果的程序。当然也尽量去优化代码,比如matlab分块读取;预先分配内存;尽可能调用内置函数;向量化编程;使用mex转换C语言等.....
FORTRAN比较古老,其速度没得说,与C语言媲美,但是学习fortran代价要比matlab难很多,而且编程的时间要长很多,但是一旦运行起来,其执行效率有可能是matlab十倍百倍不止,气候中心的气候数据都是fortran编写处理的,可见其在气象上的重要。而且代码传承也不错。
其实,都学学比较好,综合来说,简单的肯定matlab好,但是万一遇到大的数据量还是用fortran,当然matlab也提供c语言/fortran/python等语言的接口,混合编程,可以把耗时的关键部分用fortran和c语言实现,主体部分还是用简单的matlab来写。
|
|