||
一说到科学计算软件,一般联想到matlab,不过由于matlab是商业软件,价格不菲,学生版基础版也要99刀,一个工具箱29刀。如果不用crack的话,是一比不小的开支。市面上其它脚本语言的兴起,尤其是开源免费语言,例如python和R,给科学计算带来的福音。以python为例,它不仅仅在科学计算上表现已经非常好的性能,它还是一门面向对象,用于其它工程,网络等开发的语言。如今python如日中天,2010年是TIOBE的年度语言。从TIOBE网站(http://www.tiobe.com/)也可以看到,最近几年来python一直排在前10的位置。经常可以看到这样一个公式:
python+NumPy+Scipy+matplotlib = matlab
这是非常有吸引力的。详细比较下这2个语言,还是有一些差异,不过这两个语言都比较简单,而且非常好学。如果要支持正版,又不想付费,那还是用python吧。
下面简单比较下2个语言的区别:
| matlab | python |
逻辑行和物理行 | 用分号“;” disp(‘hello’);disp(‘yes’) | 用分号“;” print “hello”;disp(‘yes’) |
缩进 | 无要求,但是要程序有逻辑,清晰最好有缩进,尤其是同一层次用相同的缩进数目。 | 用缩进表示程序逻辑,要求同一层次的代码必须有相同的缩进空白数目,否则报错。 def myfun1(a,b): c=a+b return c
def myfun2(a,b): c=a+b return c |
注释 | % | # |
续行 | … | |
条件语句 | if condition elseif condition else end | if condition : elif condition: else: |
循环语句 | for number = 1:n
end
while condition end
break 跳出整个循环 continue 跳出该次循环 | for number in range(1,n) :
while :
break 跳出整个循环 continue 跳出该次循环 |
函数定义 | function [output]=name(parameters) end | def name(parameters): return output |
运算符 | +,-,*,/,^ | +,-,*,/,**
|
逻辑运算 | >,<,>=,<=,==,~= | >,<,>=,<=,==,!= |
布尔运算 | &,&& |,|| ~ | and or not |
开始索引 | 1 | 0 |
整除问题 | /直接取得准确结果 如,5/3 结果是1.6667 | /两边是整数时候为整除 5/3 结果是1
|
数据结构 | 矩阵 结构体struct patient.name = 'John Doe'; patient.billing = 127.00; patient.test = [79, 75, 73; 180, 178, 177.5; 220, 210, 205]; 元胞数组cell |
列表list mylist=[‘apple’,’mango’,’carrot’,’banana’] 字典dic ab = { 'Swaroop' :'swaroopch@byteofpython.info', 'Larry' : 'larry@wall.org', 'Matsumoto' : 'matz@ruby-lang.org', 'Spammer' : 'spammer@hotmail.com'} 元组 zoo = ('wolf', 'elephant', 'penguin') |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-20 11:40
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社