在python中实现Matlab

Matlab是一门实现科学计算用的高级程序语言,提供强大的科学计算和数据以及出色的图形处理能力。然而因为种种原因,比如昂贵的许可证授权就是个很大的问题,以及对机器性能的需要(有同学告诉我说,Matlab在他的T5500处理器笔记本上运行的很卡),如果只是用来处理常见数据运算,会显得有些大材小用。

目前已经有很多的开源方案可以代替Matlab,比如法国国家信息自动化研究院开发的Scilab(http://www.scilab.org),以及与Matlab特别相似的Freemat(freemat.sourceforge.net)等都可以。我们还有更多的选择,比如使用Python。

Python(www.python.org)是新兴的编程语言,开源跨平台免费,由于其自身特性(Python是一门Scripts语言),简单易学,机动灵活处理各种问题。同时,Python还为用户提供了丰富的模块,通过模块,可以更迅速搭建应用环境。

SciPy(www.scipy.org)就是基于Python的一个项目,旨在实现Matlab全部功能。配合另一个数学模块Numpy即可解决多数科学计算问题。

在大多数的Linux发型版中,已经集成了Python,Windows用户可以轻松从网络上获取的Python,Scipy需要从SciPy.org上下载安装。同时因为scipy依赖数学模块,所以我们还需要安装Numpy。

以我们现在的课程为例,有的时候会需要处理卷积,我们可以轻松解决。

运行Python(IDLE或Shell):

Python 2.5.2 (r252:60911, Feb 21 2008, 13:11:45) [MSC v.1310 32 bit (Intel)] on win32

Type "help", "copyright", "credits" or "license" for more information.

>>>

输入命令:

>>> from scipy import * #加载scipy模块

>>> a=array([-2,0,1,-1,3]) #定义一个数组a

>>> b=array([1,2,0,-1]) #数组b

>>> convolve(a,b) #a与b卷积运算

array([-2, -4, 1, 3, 1, 5, 1, -3]) #运算结果

Scipy模块中提供了fft()函数,可以用来解决傅立叶变换问题。

(绘图需要pylab支持)

Advertisements
此条目发表在未分类分类目录。将固定链接加入收藏夹。

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s