现在学术界越来越多人使用Python 语言取代Matlab 作为研究的主要程序编写工具。python语言看似有点类似matlab语言,对于习惯Matlab 的使用者来说,转换到Python语言应该并不困难,但是有些关键要注意的地方,也就是这两种语言的差别。掌握了两种语言的差别,我想从matlab过度到python也就不困难了。这里不考虑class(类)的情况下,讨论下两种语言基本语法上的一些差异。

1、第一个差异点在于Python 的index 起始值是从0 开始,而matlab是从1开始,Python 还有负号的index。多了负号的index 让Python 在撰写程序上又多了一些弹性。因为起始值从零开始,所以Python 的index 是落在数据与数据之间,而不是落在数据之上。例如,A = range(5), 得到A = [0,1,2,3,4]。这时,A[1:2]的答案是[1] 而不是[1,2],这点和Matlab 的习惯非常不同。

2、再來是Python虽然和Matlab 一样是一个高级的直译式语言,但是Python 不是专为矩阵计算设计的软件,例如matlab中 有x=[1,2,3],y=[2,4,6],z=x+y,z=[3,6,9],而如果在python中这样写z=[1,2,3,2,4,6],为了配合Python 更广泛的应用特性,要利用Python 处理数值或是矩阵计算时,最方便的方法是使用Numpy 库。通过其的array类来处理。

3、在运算子方面"^" 在Matlab 中是次方的意思,可是在Python 中的次方是**。例如2 的3 次方在Python 中的打法为2**3。"^"在Python 中並沒有完全被舍弃,而是作为位元运算的xor ,例如2^3=1,因为2 的二进位表示为0010,3 的二进位表示为0011,因此0010 与0011 的xor 是0001 其值为1。在Python 中这类不需要经过二进位转换就可以直接做二进位计算的位元算子还有& (and)以及 | (or)。

4、在Matlab 中常用的型別有整数,浮点数,布尔值,字元,字串,矩阵(或是阵列)以及异质阵列(cell),除了及异质阵列之位,多数的型別都是一般电脑语言常见的。Phthon 中多了一些特別的型別使得在程式撰写上,又多了一些弹性。首先,Phthon 中的串列(List)等同於Matlab 中的及异质阵列,串列里的元素型态不需拘泥于同一种格式,串列又可视为阵列的一中扩充,只是在形态上更具弹性。弹性有时是好事,但过度的弹性又会让程序员一不小心就制造一个难以纠正的bug,因此在Python 中特別出现一种无法更改內容的型为元组(tuple)。在Python中串列是用中括号[... ] 表示,而元组是用小括号(... ) 表示。无论是串列或是元组,都是一种有序的型別,意思是可以用指标(index) 去读取特定位置所存储的数据。Python 的另一个特別的型別叫做辞典,辞典是一个无序的数据型別,用大括号{... }來表示,要读取辞典內的数据必须用钥匙來开启。例如 A = {'name': 'Glophy', 'age': 18, 'url': 'http://glophy.com' }。要读取A 辞典內的数据,不能用A{1}, A{1:2} 这种方式,因为辞典是一个无序的数据型別。A 中的name, age 以及url 我們称为钥匙,钥匙后面加一个冒号(:),冒号后面所接的,就是存放在这钥匙所保管的箱子里的数据。

5、Python 省去了end 这种表示程序块结尾的用法,並且在程序块的第一行,用到":" 符号代表程序块的开始。少了end 程序要如何判別呢?Python 用叙述对齐的方式,來判断程序块是否結束(即程序块必须是tab键对齐的)。例如,

for i in range(5):

print i

print 'end'

这里for 程序块和最后一行的print 是同级的,for程序块只做到第一个print 指令。

6、在Matlab 里我们用'%' 符号代表程序中的注释,在Python 里,我们用'#' 代替。

除此在外在语法的关键字上还有一些区别,如matlab的函数定义用function,python用def等。

python语言与MATLAB语言的区别相关推荐

  1. 微分法MATLAB语言程序,MATLAB语言常用算法程序集 102MB 百度网盘

    马上注册,结交更多好友,享用更多功能,让你轻松玩转社区. 您需要 登录 才可以下载或查看,没有帐号?立即注册 x MATLAB语言常用算法程序集 102MB 百度网盘 点击进入 上篇 matlab基础 ...

  2. fortran语言能用matlab,Fortran语言转matlab语言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SUBROUTINE SPKD3(NSPI,TLI,NSPJ,TLJ,SCR,NSPIMX,COST,TSAMP,D) C C CALCULATES DI ...

  3. matlab转化为fortran的方法,Fortran语言转matlab语言

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 SUBROUTINE SPKD3(NSPI,TLI,NSPJ,TLJ,SCR,NSPIMX,COST,TSAMP,D) C C CALCULATES DI ...

  4. matlab高级数据结构,Matlab讲义-第四章Matlab语言数据结构1-10.pdf

    Matlab讲义-第四章Matlab语言数据结构1-10.pdf 第四章第四章 Matlab语言基础语言基础 Matlab语言程序简洁.可语言程序简洁.可 读性很强而且调试十分容易.读性很强而且调试十 ...

  5. matlab里面的sul,MATLAB语言在电机控制系统仿真研究中的应用

    MATLAB语言在电机控制系统仿真研究中的应用 宋凌锋李立毅程树康 [摘要]简要介绍了MATLAB语言,并把MATLAB语言应用于电机控制系统的仿真研究中,同时以一个具体实例较为深入地对其进行了说明. ...

  6. MATLAB语言入门的第一步

    一. MATLAB语言优势 MATLAB语言是当前国际上自动控制领域的首选计算机语言,也是很多理工科专业最适合的计算机数学语言.通过学习MATLAB可以更深入地理解和掌握数学问题的求解思路,提高求解数 ...

  7. python与c语言在语法上的区别-python和c语言的区别是什么

    Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...

  8. python动态与静态语言_静态语言和动态语言的区别

    via https://blog.csdn.net/hard_days/article/details/84967298 今天在群里聊天的时候,谈论到python和Java相比居然不用定义变量类型.我 ...

  9. C、C++、C#、Java、php、python语言的内在特性及区别

    C.C++.C#.Java.PHP.Python语言的内在特性及区别: C语言,它既有高级语言的特点,又具有汇编语言的特点,它是结构式语言.C语言应用指针:可以直接进行靠近硬件的操作,但是C的指针操作 ...

最新文章

  1. perl: warning: Setting locale failed. Falling back to a fallback locale (“en_HK.UTF-8“).
  2. java中if结构用图表示_Java语法基础之选择结构的if语句、switch语句详解
  3. python 3d绘图 拖动_使用python-matplotlib连续3D绘图(即图形更新)?
  4. 关于我对c#的一些看法
  5. 事物注解方式: @Transactional
  6. HttpServletRequest和ServletRequest的区别
  7. mac homebrew chinese mirror
  8. Bailian2715 谁拿了最多奖学金【分段计算处理】(Vijos P1001)
  9. 数据结构上机实践第二周项目1
  10. 2011总结与2012展望
  11. tableau三轴该怎么做_举个栗子!Tableau技巧(30):巧妙实现 双柱图 和 折线图 的组合图表...
  12. python爬取付费音乐包_用Python代码来下载任意指定网易云歌曲(超详细版)
  13. 远程计算机超出最大连接数,远程桌面超出了最大连接数怎么办呢?
  14. Webstorm如何下载插件
  15. 罗技无法使用计算机上的配置文件,Win10专业版罗技无线鼠标无法使用咋办?
  16. NetFlow网络流量分析
  17. Educoder---Java继承与接口、文件
  18. Unlawfully wed 小小新娘 | 经济学人中英双语对照精读笔记
  19. 支付系统-财务记账 复式记账 借贷
  20. SparkRDD算子--mapPartitionsWithIndex算子

热门文章

  1. 正则表达式同时匹配中英文_,还控制长度
  2. oracle按年同比环比,oracle求同比,环比函数(LAG与LEAD)的详解
  3. 基于PHP MYsql的失物招领网站设计(附源码)
  4. Android初学之十七:使用LitePal操作数据库
  5. 咱中国人必须知道的国学常识
  6. 360随身wifi产品分析
  7. 区块链的布局:腾讯 VS 阿里
  8. 搭建umi框架时出现Error: Error: Plugin umi-plugin-react can't be resolved
  9. android 导出Excel列表
  10. js字符串全部替换replaceAll