差错控制编码解决加性噪声 第6页
第二章 介绍Matlab仿真语言
2.1 Matlab语言发展简介
MATLAB 语言的首创者 Cleve Moler 教授在数值分析,特别是在数值线性代数的领域中很有影响,他参与编写了数值分析领域一些著名的著作和两个重要的 Fortran 程序 EISPACK 和LINPACK。他曾在密西根大学、斯坦福大学和新墨西哥大学任数学与计算机科学教授。1980 年前后,当时 的新墨西哥大学计算机系主任 Moler 教授在讲授线性代数课程时,发现了用其他高级语言编程极为不便,便构思并开发了 MATLAB (MATrix LABoratory,即矩阵实验室), 这一软件利用了当时数值线性代数领域最高水平的 EISPACK 和 LINPACK 两大软件包中可靠的子程序,用 Fortran 语言编写了集命令翻译、科学计算于一身的一套交互式软件系统。[EISPACK 和 LINPACK 可以来这里下载] 所谓交互式语言,是指人们给出一条命令,立即就可以得出该命令的结果。该语言无需像 C 和 Fortran 语言那样,首先要求使用者去编写源程序,然后对之进行编译、连接,最终形成可执行文件。这无疑会给使用者带来了极大的方便。早期的 MATLAB 是用 Fortran 语言编写的,只能作矩阵运算;绘图也只能用极其原始的方法,即用星号描点的形式画图;内部函数也只提供了几十个。但即使其当时的功能十分简单,当它作为免费软件出现以来,还是吸引了大批的使用者。[可以从这里下载 MATLAB 1.0 版本自己去体验一下。 Cleve Moler 和 John Little 等人成立了一个名叫 The MathWorks 的公司,Cleve Moler 一直任该公司的首席科学家。该公司于 1984 年推出了第一个 MATLAB 的商业版本。 当时的 MATLAB 版本已经用 C 语言作了完全的改写,其后又增添了丰富多彩的图形图像处理、多媒体功能、符号运算和它与其他流行软件的接口功能,使得 MATLAB 的功能越来越强大。 The MathWorks 公司于 1992 年推出了具有划时代意义的 MATLAB 4.0 版本,并于 1993 年推出了其微机版, 可以配合 Microsoft Windows 一起使用, 使之应用范围越来越广。 1994 年推出的 4.2 版本扩充了 4.0 版本的功能,尤其在图形界面设计方面更提供了新的方法。 1997 年推出的 MATLAB 5.0 版允许了更多的数据结构,如单元数据、数据结构体、多维矩阵、对象与类等,使其成为一种更方便编程的语言。1999 年初推出的 MATLAB 5.3 版在很多方面又进一步改进了 MATLAB 语言的功能。 2000 年 10 月底推出了其全新的 MATLAB 6.0 正式版(Release 12),在核心数值算法、界面设计、外部接口、应用桌面等诸多方面有了极大的改进。 虽然 MATLAB 语言是计算数学专家倡导并开发的,但其普及和发展离不开自动控制领域学者的贡献。 甚至可以说,MATLAB 语言是自动控制领域学者和工程技术人员捧红的,因为在 MATLAB 语言的发展进程中,许多有代表性的成就和控制界的要求与贡献是分不开的。迄今为止,大多数工具箱也都是控制方面的。MATLAB 具有强大的数学运算能力、方便实用的绘图功能及语言的高度集成性,它在其他科学与工程领域的应用也是越来越广,并且有着更广阔的应用前景和无穷无尽的潜能。子曰:“工欲善其事,必先利其器”。如果有一种十分有效的工具能解决在教学与研究中遇到的问题,那么 MATLAB 语言正是这样的一种工具。它可以将使用者从繁琐、无谓的底层编程中解放出来,把有限的宝贵时间更多地花在解决问题中,这样无疑会提高工作效率。目前,MATLAB 已经成为国际上最流行的科学与工程计算的软件工具,现在的 MATLAB 已经不仅仅是一个“矩阵实验室”了,它已经成为了一种具有广泛应用前景的全新的计算机高级编程语言了,有人称它为“第四代”计算机语言,它在国内外高校和研究部门正扮演着重要的角色。MATLAB 语言的功能也越来越强大,不断适应新的要求提出新的解决方法。可以预见,在科学运算、自动控制与科学绘图领域 MATLAB 语言将长期保持其独一无二的地位。
2.2 Matlab的程序设计
2.2.1 .M文件简介
Matlab 除了如前所述的在命令窗口进行的直接交互的指令操作方式外,另外一种更为重要的工作方式就是m 文件的编程工作方式。m 文件有两种形式,一种是脚本文件(Script File),另一种是函数文件(Function File)。m 文件的扩展名为\.m"。m 文件可以通过任何纯文本编辑器进行编辑,Matlab 中也有自带的文本编辑器,使用edit 命令即可开启.
2.2.2 程序控制流语句
任何计算机语言,只要存在顺序结构,循环结构以及分支结构,就可以完成任何程序功能。在Matlab 中也有这三种基本的程序结构。但是,值得注意的是,由于Matlab 语言矩阵计算功能十分强大,常常仅仅使用顺序结构借以矩阵的逻辑运算就可以完成计算任务,由于循环结构和分支结构在Matlab 语言中的运行速度相对较慢,所以在算法优化的编程中应当尽可能避免使用,而代之以矩阵运算,从而提高程序运行速度(通常可以提高数十倍到百倍),简化程序代码,而使得程序代码更加接近于数学上的表达。当然,矩阵编程的编程方法需要读者更多的关于线性代数和矩阵数学的知识和思维方式。总之,Matlab 是一种非常完美易用的超高级矩阵编程语言。这里只介绍本次编程中用到的编程结构
1. 顺序结构
在顺序结构中,Matlab 语句是按照书写的前后顺序来执行的。这是Matlab最常用的程序结构,也是执行效率最高的程序结构。
2. 循环结构for
for...end 语句适合于循环次数确定的情况,将循环变量的初值,判别和变化放在循环开头。利用help for 或doc for 可以获得关于该语句的使用手册。for...end 语句的调用形式是:
1 for v=表达式
2 语句1;
3 ....
4 语句n;
5 end
例1. 最简单的for...end 循环。
6 for k=1:10
7 x(k)=k.^2;
8 end x
9 x =
10 1 4 9 16 25 36 49 64 81 100
例2. for...end 循环的嵌套。获得九九乘法表矩阵。
11 for m=1:9
12 for n=1:9
14 end
15 end
17 1 2 3 4 5 6 7 8 9
18 2 4 6 8 10 12 14 16 18
19 3 6 9 12 15 18 21 24 27
20 4 8 12 16 20 24 28 32 36
21 5 10 15 20 25 30 35 40 45
22 6 12 18 24 30 36 42 48 54
23 7 14 21 28 35 42 49 56 63
24 8 16 24 32 40 48 56 64 72
25 9 18 27 36 45 54 63 72 81
3. 条件分支结构if
if 分支结构的一般形式是:
if 表达式
语句段1;
else
语句段
End
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] ... 下一页 >>