Matlab2008a:惊喜

   今天跑去实验室一看,周围用matlab的版本都换成2008a了。刘师兄问了我几个matlab是否支持OO与命令空间,俺以前也没碰过。回寝室查了下最新的版本,看了下新增的特性,最感兴趣的是下面三个特性:

  • New classdef keyword enabling you to define properties, methods, and events in a class definition file
  • New handle class with reference behavior, aiding the creation of data structures such as linked lists
  • Ability to manage namespace by placing classes and functions in packages


支持对象的定义,支持引用传参已经命名空间管理。这些都是高级语言常用的特性,但以前的MATLAB版本主要面向过程与算法,偏偏不支持这些特性。当程序规模非常庞大时,非常的难以管理。上个学期费时一个半月进行系统重构时,就非常迫切的感觉到,当程序规模扩展时,matlab真的不方便维护。而现在,通过这些新增的特性,很多问题将会轻松许多。比如说代码重用与命名重复,还有处理一些经典的数据结构,比如链表,图,将变得更为容易,等。

更详细的可以看这个页面:http://www.mathworks.com/products/matlab/whatsnew.html

里面有新特性的视频演示,非常的详细。

感觉matlab再寻求变化。以前只适用数值计算,善于用来进行算法模拟与仿真,而以后,很可能直接用于工程应用,就像是C++和JAVA样,在更大规模的场景得到应用。我挺喜欢MATLAB,所以,这场景令人期待。

下次找个时间,好好研究下这些玩意,嘿嘿。

另外,今天还遇到两个变态的问题:

1.matlab重名的问题。 matlab有一个计算矩阵大小的函数size, 比如说一个3x4的矩阵m,用size(m)就会得到矩阵的大小[3 4],但是今天,用这个函数的时候,会发现结果莫名其妙。一会儿说下标越界,一会儿变成不可理解的结果。无语。后来和刘师兄观察了下,然来是发生了重名。他的函数中有一句:

size = 10;

靠,就是这个。size本身就是一个变量了。再用size(m)就不是计算矩阵大小了。其输出结果不可预料,依赖于你计算大小的那个矩阵值。

2.java,无法找到main函数。一个学生的代码,明明有main函数,但eclispe这个傻冒就是没有run as application选项,在命令行下运行也是提示找不到main函数。无语。后来仔细一看,我靠,把public static void main(String[] args) 写成了 public static void main(String args),掉了个括号"[]",真是无语。

你可能感兴趣的:(数据结构,算法,matlab,OO)