现在学术界越来越多人使用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等。

matlab与python 语言区别总结(1)_matlab与python 语言区别总结(1)相关推荐

  1. matlab python比较_MATLAB与Python的比较

    知乎视频​www.zhihu.com 我正巧两个语言都比较常用(我是从2010年开始使用MATLAB的, 从2013年开始使用Python.),从我的专栏里面就可以看出来:MATLAB Python ...

  2. python casefold lower_Python学习之路(2)——字符串方法casefold和lower的区别(Python3.5)-Go语言中文社区...

    最近在学习Python基础和一些视频教学中,发现字符串的内置函数(built-in functions)中有2个方法的作用非常相似:casefold和lower: str1='I love Pytho ...

  3. c语言 python java_C语言、C++、Java,Python之间的区别,哪个更有前景,哪个更难 ?...

    从这四种语言的难度.受欢迎度还有作用以及优点缺点给楼主做一个全面的分析,我们可以从中了解其区别,以及难易程度.至于今后可以用到的或者是前景问题,根据自己的职业发展大家可以自己做个分析.最后会总结一下他 ...

  4. c语言与python的语法区别_来自python的C语言(基本语法),从,Python,看,基础,篇

    一个学过C/C++的咸鱼,最近学起了Python,不得不说,知识还是老知识,语法也简单多了,但就是容易搞混.大致总结一下Python与C的区别,以后别张冠李戴啦,嘻嘻. Part  1.输入与输出 输 ...

  5. python和c 的区别-Python和C语言的区别是什么?Python和C语言的简单比较

    Python和C语言都是一种可用于实现多线程的高级编程语言,那么它们之间有什么区别?本篇文章就来简单比较一下Python和C语言,让大家了解Python和C语言之间的区别,希望对大家有所帮助. 什么是 ...

  6. python第一周学习总结+初辨python与c语言的区别

    首先是python的第一周学习总结 从注释.变量.字符串格式化,到运算符和流程控制,再到数据类型 1.注释:python的单行注释是# (快捷键是Ctrl+/),多行注释""&qu ...

  7. c语言与python的区别与联系_python和c语言的主要区别

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

  8. python比matlab的优点_MATLAB比Python的优势?

    很多人都喜欢拿python和matlab进行对比,说这个更好,那个更好,今天就来对比一下 下面从两者各自的应用做个对比. 一.python的优势 Python与Matlab相比最大的优势就是两个字-免 ...

  9. python与c语言有什么区别呢_c语言和python之间有什么区别

    Python和C语言都是一种高级编程语言,它们之间有相似之处,也有不少差异.下面本篇文章就来给大家介绍一下c语言和python之间有哪些的区别,希望对大家有所帮助. 1.语言类型 Python是一种基 ...

最新文章

  1. 专访微软全球资深副总裁:中国AI正在爆发式崛起,千万不要复制美国,要建立自己的模式,才能做领导者
  2. WindowsServer2012史记4-重复数据删除的魅力
  3. ff14服务器维护怎么办,《FF14》8月20日维护到几点 最终幻想14服务器迁移维护公告...
  4. Apache + PHP 服务
  5. Docker在Ubuntu16.04上安装
  6. 苹果应用商店新增对“非公开上市”应用程序的支持
  7. php读入输入_php-读取用户输入并检查数据类型
  8. 从C# 到 Java 点滴
  9. html得到上传文件类型后缀,js获取上传文件后缀名(附js提交form表单)
  10. 【Shell】Sed 删除、替换、增加字符串
  11. 2022年执业兽医考试经典试题及答案
  12. XUL使用中的常见错误
  13. 新手小白也能会的从淘宝口令到下载完淘宝直播回放视频的步骤详情
  14. Windows开发之——Win10开机启动及启动设置
  15. 微信公众号支付: JSAPI缺少参数:total_fee ;没有生成预支付ID package=prepay_id=null;
  16. 彻底解决Win10频繁禁用IME或者已禁用IME后无法启用的问题
  17. php 高级工程师简历模范
  18. 2021-03-18-8400
  19. EBS R12基本概念与应用基础
  20. 开年捞金蓝海项目,实操一天就赚了五百多

热门文章

  1. R语言ggplot2可视化:自定义设置X轴上的时间间隔(中断、以年为单位),使用scale_x_date()自定义设置坐标轴间隔和标签、添加标题、副标题、题注信息
  2. 方差分析(Analysis of Variance,ANOVA)是什么?方差分析的形式有哪些?
  3. Seaborn可视化使用relplot函数可视化数据长度不同的时间序列实战:two Pandas Series of different lengths
  4. NLP任务语义相似数据准备及实战
  5. A fuzzy Bruijn graph approach to long noisy reads assembly
  6. 第三代主流测序数据组装软件
  7. matlab求异面直线的公垂线,怎么求两异面直线公垂线方程……
  8. nvidia 英伟达 显卡 GPU 的计算能力
  9. Word、Acrobat 中的朗读功能
  10. Pandas中 DateFrame 修改列名