专业软件免费下载:http://www.9iv.com/down/index.htm?eid=226083

【转载】MATLAB R2008a 的新亮点

上一篇 / 下一篇  2008-03-29 13:57:18 / 个人分类:MATLAB

查看( 301 ) / 评论( 17 )
SimWe个人空间t1I/UO}Q)QFgMb1s

Google搜索MATLAB R2008a时无意搜到的,作者是MIT的。文章写得很好。转载到这里大家共赏。

'WZ%zpPc7O*C0

VrxYq"Fl0原文链接:http://dahua.spaces.live.com/blog/cns!28AF4251DF30CA42!2287.entry 。有删节!

$F6b-V)jvyhL"~,b0

k/c6t-my/e0d0今年3月,Mathworks推出了MATLAB一个重要的新版本,MATLAB 2008a,也叫做MATLAB 7.6。在这个版本里,MATLAB解决了几个长期以来固有的弊端,而且加入了一些重要的能力。这次的更新是非常aggressive的,可能代表了MATLAB的一种历史性的转型。

  1. 完全实现面向对象编程。其实,在MATLAB的早期版本里面,也有class的概念,不过大家如果使用过的话,可能知道那是一种不太好的设计。功能不强,过程繁琐,而且,很多很tricky的地方,尤其是重载numel, subsref这类函数的时候。而新的设计抛开了历史包袱,现在写出来的类和在python里面写的长得差不多,舒服多了。这套设计,吸取(或者“抄袭”)了Python和C#的优点,除了支持封装(encapsulation),继承(inheritance),和多态(polymorphism)这些基本特性以外,还支持了一些新兴的特性,包括属性(property),事件(event),和静态方法(static method)。
  2. 支持Handle类型——用另外一种说法,就是支持函数调用传引用。以前matlab传递参数只有一种方法,copy on write。就是说,当你传一个东西进去,如果它要发生改变,那么,这个东西会整个copy一份,然后修改会在副本上生效。这使得实现动态数据结构变得非常困难。比如一个列表,如果每添加一个元素,都要拷贝整个列表一次,将是什么效果呢?因此,传统上matlab擅长于以矩阵为基础的算法,但是对于以经典动态数据结构为基础的算法,比如动态列表,哈希表,搜索树,图等,就力不从心了。这个新版本终于引入了对引用的支持,这将使MATLAB实现经典数据结构和算法变得前所未有的轻松。现在,数值和统计算法与经典算法越来越多地合流,很多应用都需要同时使用两方面的算法,MATLAB的这个变化正好适应了这种需求。
  3. 引入了名空间的管理。以前,MATLAB所有的函数都在同一个global的名空间下面。比如两个工具包里面出现了同名函数,解决起来很麻烦。比如现在有两个算法叫LDA,一个是Latent Dirichlet Allocation,一个是Linear Discriminant Analysis,在一个应用中需要同时用到两个算法,而写这两个算法的人各自把它们命名为lda.m,那么问题就出来了。一种naive的方法是改名字,不过会直接破坏掉那些toolbox里面对那个函数的依赖。而这个版本,它借鉴其它高级语言的经验,终于引入了namespace,给这个问题一个很好的解决。
SimWe个人空间*N sKQ ]d

从这些特点看来,MATLAB这个版本的重要改变,就是全面吸收其它高级语言的特性,从一个数值运算语言开始迈向一个以数值计算为强项的通用语言,以应对复杂或者更大规模应用的需要。 SimWe个人空间8[fu/^t7y

一直以来,由于matlab缺乏处理高级数据结构和建立复杂应用的能力,它有一个有力的竞争者numpy,这是python里面进行矩阵和数值运算的包,它建基于python这种著名的通用语言,并且提供matlab矩阵的部分能力。这次MATLAB的全面升级,对于numpy无疑提出了严峻的挑战。 SimWe个人空间x_a$r*l"j{2ks6yf

除了程序设计结构方面的变化,MATLAB 2008在多个方面也有重要进步。

  1. 它的优化工具箱(optimization toolbox)首次引进了interior point algorithm。interior point algorithm在convex optimization中占有重要地位,并且性能优越。MATLAB optimization toolbox一直以为因为使用老式算法,性能太差,而饱受诟病。这次终于引入interior point,希望它的优化性能能得到显著改善。
  2. 重写核心JIT引擎(运行时编译,可以显著提高运行效率),并且采用了最新的BLAS/Lapack核心,运算速度会有相当程度的提高。另外,还大幅度提高了对sparse matrix的计算速度。
  3. 它的统计工具箱增强了对很多著名的统计算法的有力支持,比如HMM, GMM,还有NMF(Nonnegative Matrix Factorization),并且开始引入对蒙特卡罗采样的支持。
SimWe个人空间~9AT F-W

MATLAB 2008刚刚发行,现在学校内部还没开始支持。不过,这个版本确实非常值得期待。

;ZJB8urJy/T6n0

TAG:

taohe的个人空间 taohe 发布于2008-03-30 10:27:38
写的很好,才刚开始用r2008a,这样的信息是很有用的。|Simwe.com|仿真|设计|有限元|虚拟仪器e+o n*Uf1H!TJ]
仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM\~d}$n|A
读后感想:对那个”interior point“优化算法很感兴趣,有空一定试一下。不过关于numpy,我觉得,即使拿matlab6.x来比,现在的numpy都无法和matlab比,也就是说,新版的matlab并没有给numpy带来特别的挑战。
菜丝inside发布于2008-03-30 10:39:11
才开始用2007a仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM JJ{#a5s
有必要赶那么快么 只是一个仿真 又不是编程
taohe的个人空间 taohe 发布于2008-03-30 10:49:53

QUOTE:

原帖由 菜丝inside 于 2008-3-30 10:39 发表
.v%G~V I/f w|Simwe.com|仿真|设计|有限元|虚拟仪器才开始用2007a|Simwe.com|仿真|设计|有限元|虚拟仪器mCS%Y&|$MK(qp#t
有必要赶那么快么 只是一个仿真 又不是编程
o[&dw.]'U.P/a2S
仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM,O*];J:kog5rcio
我个人是这样想的,我们仿真或者编程都是使用软件,至少有两个原因可能导致我们对所用的软件不满意:一是软件可能有bug,而是软件可能缺乏每种我需要的功能。于是我在关注某个软件新版本的时候就特别留意有那些新功能,有那些bug fixes?如果这些对我有用,那就升级。
bain's home bainhome 发布于2008-03-30 12:04:44
这里很多是MATLAB的铁杆FANS,它每个版本都有很多方便的功能添加,我们要的就是这些东西。照三楼的逻辑,只是个仿真而已,直接退到v5即可,那个版本也有simulink哦
3o&G+R%y9m,]"yg0zSimWe个人空间|Simwe.com|仿真|设计|有限元|虚拟仪器iNhO9Jq"}
PS:junziyang兄转贴的是好文章,要仔细拜读。
junziyang的个人空间 junziyang 发布于2008-03-30 16:53:18
还是taohe与时俱进啊!呵呵。现在还没能用上R2008a,期盼ing......
@]X0?a T6s l仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM我对新版的面向对象编程比较感兴趣。记得以前想用R2007的面向对象编程,改善一下以前写的程序启动界面函数,最后编不下去了。但愿这个版本中能找到解决问题的途径。
semeng的个人空间 semeng 发布于2008-03-30 17:10:44
我下载了,但是不知道能不能安装。最重要的是不是有没有注册码!
7I%s,G J},}0Y1Ou仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM如果没有,还希望版主给我传送一个,我也想尝尝鲜
shunfly的个人空间 shunfly 发布于2008-03-30 18:56:35
junziyang兄能否说说这是一个什么样的思路?
SIa2hH仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent

QUOTE:

原帖由 junziyang 于 2008-3-30 16:53 发表 e.simwe.comH6A5P"R(eb5C4qP
记得以前想用R2007的面向对象编程,改善一下以前写的程序启动界面函数

longe329发布于2008-03-30 19:17:27
前几天刚装了matlab2007b,今天看了楼主的帖子,装了个2008试了下,发现其遗传算法工具箱已经被移到了优化工具箱里面,呵,至于interior point以前没听过,准备试试看
junziyang的个人空间 junziyang 发布于2008-03-30 20:52:31
以前写了个启动界面,借助Java实现的。只能显示静态的图片。想用面向对象的思想改造一下,使启动界面可以动态显示文字,图片等等。用类来实现便于维护和使用,也可以设计的MATLAB-like一些。以前搞过一阵子,感觉实现起来越来越复杂,可能设计也有问题,面向过程惯了,不太会用类来考虑问题。后来事情多就放下了,现在还没搞定。呵呵。仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,a%Vn$P)S uo

2b$A#xZld+W0u.S.J/k/oe.simwe.com

QUOTE:

原帖由 shunfly 于 2008-3-30 18:56 发表 |Simwe.com|仿真|设计|有限元|虚拟仪器g2Px2k#[
junziyang兄能否说说这是一个什么样的思路?|Simwe.com|仿真|设计|有限元|虚拟仪器N]9Z(gZ,zy

bain's home bainhome 发布于2008-03-30 22:55:21
凑个今天的50贴玩玩儿
m`L'GT
[|Simwe.com|仿真|设计|有限元|虚拟仪器
刚才用optimtool里的interior point algorithm测试一个以前的无约束非线性优化问题,速度感觉一般,不过optimtool还是很好很强大。
hopeasy发布于2008-03-31 09:21:08
貌似gui功能没有新的变化,help中提到有demo视频,但是没有对应的.swf文件,可能alpha版本忘记打包到里面了
cwit的个人空间 cwit 发布于2008-03-31 14:00:13
编译这方面有什么新的改变?
6Bw3o"t{:K-NSimWe个人空间自从7.0的编译我没有办法用,就一直停留在Matlab 6.1版本。
q;lj
Y)q|Simwe.com|仿真|设计|有限元|虚拟仪器
看来落伍了!
stephenhope发布于2008-03-31 20:25:16

QUOTE:

引入了名空间的管理。以前,MATLAB所有的函数都在同一个global的名空间下面。比如两个工具包里面出现了同名函数,解决起来很麻烦。比如现在有两个算法叫LDA,一个是Latent Dirichlet Allocation,一个是Linear Discriminant Analysis,在一个应用中需要同时用到两个算法,而写这两个算法的人各自把它们命名为lda.m,那么问题就出来了。一种naive的方法是改名字,不过会直接破坏掉那些toolbox里面对那个函数的依赖。而这个版本,它借鉴其它高级语言的经验,终于引入了namespace,给这个问题一个很好的解决。
        Z(y/W#L!sH
t;fl{LK,rYL'DSimWe个人空间个人觉得这个功能确实很好,有时候自己写的东西确实会和toolbox的重名。
taohe的个人空间 taohe 发布于2008-03-31 20:55:20
今天又读了一下juziyang在顶楼的转帖,觉得对那些更新都感兴趣。好像都挺有用的。
gouxg发布于2008-04-01 12:17:56
这些更新确实是很实用,看来又得下载了
junziyang的个人空间 junziyang 发布于2008-04-01 12:25:45
终于追上时代了 仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent%y`]
Dt0_

发现GUIDE中多了个uitable,可以比较方便的制作表格了。仿真分析,有限元,模拟,计算,力学,航空,航天,ANSYS,MSC,ABAQUS,ALGOR,Adina,COMSOL,FEMLAB,Matlab,Fluent,CFD,CAE,CAD,CAM$y8lb_/hV;f
再有个TabbedPane就好了。现在版本中有uitab和uitabgroup,不该都是undocumented,看了也指日可待了。
insprion发布于2008-04-01 13:23:18
现在软件的更新速度太快了。
我来说两句

(可选)

Open Toolbar