MatLab用户思考学习Python

时间:2014-04-14 00:23:49

标签: python c++ matlab

我正在考虑学习Python以放弃MatLab的想法,虽然我真的很喜欢MatLab。然而,我担心让所有移动和独立的部分融合在一起可能是一个挑战,最终可能不值得。我也考虑过使用Visual Basic或Visual C ++。最后,我不断回到MatLab的简易性。有关使用Python的难度的任何想法或评论?值得吗?

3 个答案:

答案 0 :(得分:2)

一个好的起点是这个页面:SciPy getting started,它概述了您可以用来从Python转向MatLab的科学工具堆:特别是库numpy,{ {3}},scipy和互动式工作环境matplotlib。特别是,numpy和matplotlib的设计与使用MatLab非常相似。

  

NumPy的数组类型增加了Python语言的高效数据结构,可用于数值工作,例如操作矩阵。 NumPy还提供基本的数值例程,例如用于查找特征向量的工具。

例如在matlab中你可能会写

eye(3)-diag([1 1],1)

然后回来

 1    -1     0
 0     1    -1
 0     0     1

在Python / numpy中你会写

import numpy as np
np.eye(3)-np.diag([1,1],1)

然后回来

array([[ 1., -1.,  0.],
       [ 0.,  1., -1.],
       [ 0.,  0.,  1.]])

使用matplotlib

  

通过面向对象的界面或MATLAB用户熟悉的一组函数,您可以完全控制线条样式,字体属性,轴属性等。

在MatLab中进行绘图可能会写

x=linspace(-pi, pi, 100);
plot(x,sin(x))

在Python / numpy / matplotlib中你会写

x=np.linspace(-np.pi, np.pi, 100)
import matplotlib.pyplot as plt
plt.plot(x,np.sin(x))

网上有很多专为过渡的人设计,例如, IPython

  

MATLAB®和NumPy / SciPy有很多共同之处。但是有很多不同之处。创建NumPy和SciPy是为了用Python最自然的方式进行数值和科学计算,而不是MATLAB®克隆。本页面旨在收集有关差异的智慧,主要是为了帮助熟练的MATLAB®用户成为熟练的NumPy和SciPy用户。 NumPyProConPage是一个好奇的人的另一个页面,他们正在考虑采用Python与NumPy和SciPy而不是MATLAB®,并希望看到一个优缺点列表。

您可能还想考虑NumPy for Matlab Users,它将numpy和matplotlib组合到一个命名空间中,因此您不必费心使用我使用的npplt前缀以上。例如,参见pylab

此网站上有一些值得关注的标签:例如wikipedianumpyscipy。在stats.se上还有一个matplotlib,你可能会发现它是相关的。如果您对统计数据,或阅读,编写和操作表格数据感兴趣,您会对question on Python,Python对pandas的回答感兴趣。

至于C ++,它是一种很棒的语言,但与Python不在同一类别。这不是讨论它们的优点和缺点的正确位置,但简而言之,C ++比Python更接近机器,如果你花时间可以编写高度优化的代码。在Python中,您可以非常快速地获得代码,将独立的部分粘合在一起,轻松地从任何地方读取和写入数据,但Python代码有时会运行缓慢(就像Matlab一样 - 如果你在numpy中快速地向量化它很快,否则它会被解释而且很慢。您可能偶尔想要使用Python调用C中定义的函数来加速缓慢的Python代码,例如,参见R's data frame。 (我会将Visual Basic留给一边,因为它看起来并不相关。)

最后,如this question所述,回答任何细节都需要确切了解您的要求,不仅仅是您想做什么,还有您想要做什么,以及需要多少时间和金钱你可以投资。

答案 1 :(得分:0)

是的Python值得学习。这是我十年前学到的第一门主要语言。它在Linux系统中大量使用,尤其是在系统启动时。该语言的库也非常发达。如果你想设计一款游戏PyGame已经存在很长时间了,这个过程非常简单。如果你想为网络编程,Twisted是一个很棒的图书馆。他们的网络框架Django是一个美女。

我发现Python是一种非常英语的语言。

如果您愿意,您也可以在Ruby上巅峰。 Ruby允许许多不同风格的编程。因此,您可以像在Ruby中使用其他语言一样编程(我严格意味着风格)。 Ruby也有最多"免费"我在网上学习和使用语言的资源。

我喜欢这两种语言。但我对你的回答是#34;是的!" Python是一门优秀的第一语言。

这完全取决于你想做什么,以及你喜欢什么方法。


<小时/> 你可以在这里找到许多数学绘图库:https://wiki.python.org/moin/NumericAndScientific/Plotting其中许多库可能是Matlab的绝佳替代品。

答案 2 :(得分:-3)

Python非常适合像Arduino那样的固件编程。对于编程软件而言,C ++非常强大且非常强大。应用。如果你想编程硬件,请使用python。如果您想编写软件,请使用C ++。我正在学习C ++和它的伟大。