当前位置:文档之家› MATLAB讲义

MATLAB讲义

MATLAB讲义
MATLAB讲义

第一章基础准备及入门

什么是MATLAB?

MATLAB是MathWorks公司于1984年推出的数学软件,是一种用于科学工程计算的高效率的高级语言。MATLAB最初作为矩阵实验室(Matrix Laboratory),主要向用户提供一套非常完善的矩阵运算命令。随着数值运算的演变,它逐渐发展成为各种系统仿真、数字信号处理、科学可是化的通用标准语言。

在科学研究和工程应用的过程中,往往需要大量的数学计算,传统的纸笔和计算机已经不能从根本上满足海量计算的要求,一些技术人员尝试使用Basic,Fortran,C\C++等语言编写程序来减轻工作量。但编程不仅需要掌握所用语言的语法,还需要对相关算法进行深入分析,这对大多数科学工作者而言有一定的难度。与这些语言相比, MATLAB的语法更简单,更贴近人的思维方式。用MATLAB编写程序,犹如在一张演算纸上排列公式和求解问题一样高效率,因此被称为“科学便笺式”的科学工程计算语言。

MATLAB由主包和功能各异的工具箱组成,其基本数据结构是矩阵。正如其名“矩阵实验室”,MATLAB起初主要是用来进行矩阵运算。经过MathWorks 公司的不断完善,时至今日,MATLAB已经发展成为适合多学科、多工作平台的功能强大的大型软件。

本章有两个目的:一是讲述MATLAB正常运行所必须具备的基础条件;二是简明系统地介绍高度集成的Desktop操作桌面的功能和使用方法。

本章的前两节分别讲述:MATLAB的正确安装方法和MATLAB 环境的启动。因为指令窗是MATLAB最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算例讲述指令窗的基本操作方法和规则。这部分内容几乎对MATLAB各种版本都适用。

MATLAB6.x 不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互式工作界面。了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半功倍地利用MATLAB去完成各种学习和研究。为此,本章特设几节用于专门介绍最常用的交互界面:历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、M文件编辑/调试器、及帮助导航/浏览器。

本章是根据MATLAB6.5版编写的,但大部分内容也适用于其他6.x版。

1.1M ATLAB的安装和内容选择

图 1.1-1

1.2D esktop操作桌面的启动

1.2.1MATLAB的启动

1.2.2Desktop操作桌面简介

一操作桌面的缺省外貌

下图是6.5版的Desktop操作界面的默认外形。该桌面的上层摆放着最常用的界面:命令窗口(指令窗)、历史指令窗、工作空间浏览器,在窗口的左下角新增加了“开始按钮”。在缺省情况下,还有一个只能看到“窗名”的常用交互界面:当前目录窗。它们被铺放在桌面的下层。

图1.2-1

二 通用操作界面

下面所列的9个交互界面最为常用。 ① 指令窗(Command Window ) ② 历史指令窗(Command History )

③ 当前目录浏览器(Current Directory Browser ) ④ 工作空间浏览器(Workspace Brower ) ⑤ 内存数组编辑器(Array Editor ) ⑥ 开始按钮(Start )

⑦ 交互界面分类目录窗(Lauch Pad ) ⑧ M 文件编辑/调试器(Editor/Debugger )

⑨ 帮组导航/浏览器(Help Navigator/Browser )

1.3 C ommand Window 运行入门

1.3.1

Command Window 指令窗简介

图 1.3-1

1.3.2 最简单的计算器使用法

【例1.3.2-1】求23)]47(212[÷-?+的算术运算结果。 (1)用键盘在MATLAB 指令窗中输入以下内容 >> (12+2*(7-4))/3^2

(2)在上述表达式输入完成后,按【Enter 】键,该就指令被执行。 (3)在指令执行后,MATLAB 指令窗中将显示以下结果。

ans = 2

【例1.3.2-2】简单矩阵????

??????=987654321A 的输入步骤。 (1)在键盘上输入下列内容

A = [1,2,3; 4,5,6; 7,8,9]

(2)按【Enter 】键,指令被执行。

(3)在指令执行后,MATLAB 指令窗中将显示以下结果:

A =

1 2 3 4 5 6 7 8 9

【例1.3.2-3】矩阵的分行输入。

A=[1,2,3 4,5,6 7,8,9] A =

1 2 3 4 5 6 7 8 9

【例1.3.2-4】指令的续行输入

S=1-1/2+1/3-1/4+ ...

1/5-1/6+1/7-1/8 %...为续行号,它把其下的物理行看作该行的“”逻辑继续,以构成一个“较长”的完整指令。 S =

0.6345

1.3.3 数值、变量和表达式

一 数值的记数

MATLAB 的数值采用的是常用的十进制数表示法,可以带小数点或者负号。以下记数都是合法的。

二 变量命名规则

① 变量名、函数名是对字母大小写敏感的。变量名的第一个字母必须是英文字母。 ② 对于6.5版,变量名最多可包含63个字符(英文、数字和下连符);而对6.5以前

的版本,变量名的字符不超过31个。 ③ 变量名中不得包含空格(Backspace )、标点,但可以包含下划线。变量名my_var_201

是合法的。而my ,var201由于逗号的分隔,表示的就不是一个变量名。

3330.003 3.47434 1.5e 5.4e32

--

三MATLAB默认的预定义变量

四运算符和表达式

MATLAB中书写表达式的规则和“手写算式”几乎完全相同。表达式由变量名、运算符和函数名组成,按照与常规相同的优先级从左至右执行计算。优先级的规定是:指数运算级别最高,乘除运算次之,加减运算最低,但括号可以改变运算次序。书写表达式时,允许“=”运算符两侧有空格,用于增加可读性。

注:MATLAB用左斜杠或者右斜杠分别表示“左除”或者“右除”运算。对于标量而言,这两者的作用没有什么区别,但对矩阵而言,两种运算将产生不同的结果。

五复数和复数矩阵

MATLAB最强大的功能之一就是它对复数不需要作特殊处理。 MATLAB认识复数,并用预定义变量i和j作为虚数单位。在MATLAB中,复数可用几种方式表示。

①>>a1=2+4i ↙ %附加的i表示虚部

a1=

2.0000+4.0000i

>>a1=2-3j ↙ %附加的也可以表示虚部

a1=

2.0000+4.0000i

②还可以用MATLAB默认值i=j=sqrt(-1)来表示虚部。

>>a3=2*(4-sqrt(-1)*2) ↙

a3=

8.0000-4.0000i

③注意下面例子的表达式

>>a4=5+sin(.5)*i ↙

a4=

5.0000+0.4794i

若将sin(.5)*i中的*去掉,会得到下列信息:

>>a4=5+sin(.5)i ↙

???a4=5+sin(.5)i

Error:Missing MATLAB operator.

原因是sin(.5)i对MATLAB而言没有意义,因此需要在i和j 之前加乘法符号。综上所述,直接以字符i和j结尾,只适用于简单数值,不适用于表达式。

【例1.3.3-1】复数

i

e

z

i

z

i

z6

3

2

1

2

,2

1

,4

3

π

=

+

=

+

=表达,及计算

3

2

1

z

z

z

z=。

(1)

z1= 3 + 4i

z1 =

3.0000 +

4.0000i

(2)

z2 = 1 + 2 * i

z3=2*exp(i*pi/6)

z=z1*z2/z3

z2 =

1.0000 +

2.0000i

z3 =

1.7321 + 1.0000i

z =

0.3349 + 5.5801i

【例1.3.3-2】复数矩阵的生成及运算

A=[1,3;2,4]-[5,8;6,9]*i

B=[1+5i,2+6i;3+8*i,4+9*i]

C=A*B

A =

1.0000 - 5.0000i 3.0000 - 8.0000i

2.0000 - 6.0000i 4.0000 - 9.0000i

B =

1.0000 + 5.0000i

2.0000 + 6.0000i

3.0000 + 8.0000i

4.0000 + 9.0000i

C =

1.0e+002 *

0.9900 1.1600 - 0.0900i

1.1600 + 0.0900i 1.3700

【例1.3.3-3】求上例复数矩阵C的实部、虚部、模和相角。

C_real=real(C)

C_imag=imag(C)

C_magnitude=abs(C)

C_phase=angle(C)*180/pi %以度为单位计算相角

C_real =

99 116

116 137

C_imag =

0 -9

9 0

C_magnitude =

99.0000 116.3486

116.3486 137.0000

C_phase =

0 -4.4365

4.4365 0

注:MATLAB中有许多内建函数本例中real、imag、abs、angle都是内建函数。

-能得到–2 吗?

【例1.3.3-4】用MATLAB计算38

(1)直接计算时,得到的处于第一象限的方根。

a=-8;

r=a^(1/3)

r =

1.0000 + 1.7321i

-的全部方根。

(2)计算38

m=[0,1,2]; %为3个方根而设

R=abs(a)^(1/3); %模的开三次方

Theta=(angle(a)+2*pi*m)/3;%-pi

rrr=R*exp(i*Theta)

rrr =

1.0000 + 1.7321i -

2.0000 + 0.0000i 1.0000 - 1.7321i

(3)

t=0:pi/20:2*pi;x=R*sin(t);y=R*cos(t); plot(x,y,'b:'),grid %画一个半径为R 的圆 hold on

plot(rrr(1),'.','MarkerSize',50,'Color','r')%画第一象限的方根 plot(rrr([2,3]),'o','MarkerSize',15,'Color','b')%画另两个根 axis([-3,3,-3,3]),axis square %保证屏幕显示呈真圆

hold off

1.3.4 计算结果的图形表示

【例 1.3.4-1】画出衰减振荡曲线t e

y t 3sin 3

-=及其它的包络线3

0t e y -

=。t 的取值范围是

]4,0[π。(图1.3-3)

t=0:pi/50:4*pi; %定义自变量取值数组

y0=exp(-t/3); %计算与自变量相应的y0数组 y=exp(-t/3).*sin(3*t);% 计算与自变量相应的y 数组

plot(t,y,'-r',t,y0,':b',t,-y0,':b')%用不同颜色、线型绘制曲线

【例 1.3.4-2】画出2

2

22)

sin(y

x y x z ++=

所表示的三维曲面(图1.3-4)。y x ,的取值范围是

]8,8[-。

clear;x=-8:0.5:8; %定义自变量x 的一维刻度向量 y=x'; %定义自变量x 的一维刻度向量

X=ones(size(y))*x; %计算自变量平面上取值点x 坐标的二维数组 Y=y*ones(size(x)); %计算自变量平面上取值点y 坐标的二维数组 R=sqrt(X.^2+Y.^2)+eps; %

计算中间变量R =Z=sin(R)./R; %计算与自变量二维数组相应的函数值sin R

z R =<6>

surf(X,Y,Z);

%绘制三维网格图

colormap(cool)

%指定网格图用hot 色图绘制

xlabel('x'),ylabel('y'),zlabel('z')

说明:①本例中第5条指令中引入eps 的目的是:一是避免第6条指令进行除

法运算时产生sin 00()现象;二是在R=0处获得0

sin R lim 1R R →=()

的计算结果。 ②第5条指令中的“.^”称为“数组幂”,第6条指令的“./”称为“数组除” 。这两种运算都是对参与运算的数组的元素逐个进行的。

图 1.3-4

1.4 C ommand Window 操作要旨

1.4.1

指令窗显示方式的操作

一 缺省显示方式

在缺省的情况下,像if 、for 等关键词采用蓝色字体;输入的指令、表达式以及计算结果等采用黑色字体;字符串采用赭(zhe )红色字体。

在指令窗中,数值计算结果都以简洁的“短(Short )”格式显示。

注意:用户不要把数值的显示精度错误的理解为数值在MATLAB中的表示精度。MATLAB仅仅是为了显示简洁才采用较少的数位显示,实际存储和运作时都以双精度进行。

二显示方式的设置

用户根据需要,可以对指令窗的字体风格、大小、颜色和数值计算结果显示格式进行设置。设置方法是:选中桌面或指令窗的[File:preferences]下拉菜单项,引出一个参数设置对话框;在此弹出的对话框的左栏中选中“Command Window”项或其展开项“Font&Colors”,对话框的右边就出现相应的选择内容;用户根据需要和对话框提示对数据显示格式,或字体等进行选择;最后,点击[ok]健完成设置。注意:该设置将立即生效,并且将被永久保留,即这种设置不因MATLAB 关闭和开启而改变,除非用户进行重新设置。

1.4.2数值计算结果的显示格式

见上表。

1.4.3指令行中的标点符号

MATLAB 中用“%”实现注释功能,可以利用这一特性对所做工作进行文档注释。可以把多条命令放在同一行,只需在中间用逗号或者分号隔开。

>>total=500,apple=300;orange=200 ↙

total=

500

orange=

200

逗号告诉MATLAB显示结果;分号说明除这一条命令以外还有下一条命令等候输入,MATLAB这时不会显示中间结果。

如果想在下一行继续注释,必须在行头再加“%”,否则会报错。

注:为确保指令正确执行,以上符号一定要在英文状态下输入。因为MATLAB不能识别中文标点。

1.4.4指令窗的常用控制指令

1.4.5指令窗中指令行的编辑

操作方便,MATLAB不但允许用户在命令窗口中对输入命令进行各种编辑和运行操作,而且允许用户对过去已经输入的命令进行回调、编辑和重新运行。

MATLAB可以使用方向键来调用前面的命令。例如:①按一下[↑]键会在提示符处调用上一次的命令,重复按[↑]键则遍历前面所有的命令;②以相同的方式按[↓]键则向后遍历所有的命令。在任何时刻都可以用[←]键和[→]键在命令行移动光标,这样可以编辑命令。

按[PageUp]键可以前寻式翻阅当前窗口中的内容;按[PageDown]键可以后寻式翻阅当前窗口中的内容;按[Home]键能将光标移到当前行的最前面;按[End]键能将光标移到当前行的末尾;按[Delete]键会删除光标右边的字符;按[Backspace]键会删去光标左边的字符;按[Esc]键会清除当前行的全部内容。注:MATLAB命令窗口中输入的所有命令都被记录在内存中专门开辟的“命令历

史窗口”中,只要用户对它们不进行专门的删除操作,它们将不会因为用户对命令窗口的清屏操作(即运行clc 指令)而消失,也不会因为用户对“workspace”进行“清除内存变量”(即运行clear 指令)而消失。 【例1.4.5-1】指令行操作过程示例。

计算

的值。

>>y1=2*sin(0.5*pi)/(1+sqrt(3)) ↙ y1= 0.7321

利用命令回调,进行新的计算。 方法:先用[↑]键调回已输入过的命令

y1=2*sin(0.5*pi)/(1+sqrt(3)) ;然后移动光标,把y1换成y2;把sin 换成cos ;再按[Enter]键,就可以得到一下结果。 >>y2=2*cos(0.5*pi)/(1+sqrt(3)) ↙ y2=

4.4825e-017

1.5 C ommand History 和实录指令diary

1.5.1

Command History 历史指令窗简介

通常历史指令窗口位于MATLAB 操作作=桌面的左下侧前台,此窗口属性为可浮动窗口,只要单击该指令窗口右上角的↗按钮,就可以获得浮动窗口。单击浮动窗口右上角的↘按钮,使独立的浮动窗口复原。

图1.5-1

1.5.2 历史指令行的再运行

用户通过历史指令窗口执行历史指令的方法有以下两种:

①用鼠标双击一条指令,即可发送到指令窗口立即执行;

②选中指令,单击鼠标右键选择[Copy]菜单,在指令窗口单击[Paste]按钮即可。对于选择执行多条历史指令,可先利用组合操作[Ctrl+鼠标左键]选择浮动菜单中多条指令,当鼠标光标停在高亮度区时,单击鼠标右键,弹出浮动菜单,选中浮动菜单,选中浮动菜单中“Evaluate Selection”选项,计算结果就会出现在指令窗口中。

【例1.5.2-1】再运行图1.5-2所示历史指令窗中的三行指令。

具体操作过程:先利用组合操作[Ctrl+鼠标左键]分别点亮如图所示历史指令窗中的那3行指命令;当鼠标光标在点亮区时,点击鼠标右键,引出现场菜单;选中现场菜单项[Evaluate Selection],计算结果就出现在指令窗中。

图1.5-2

1.5.3指令窗实录指令diary

diary指令能产生“日志”文件,即把当前指令窗口中所有内容(包括指令、计算结果等)如实地记录为ASCII文件加以保存。

1.6C urrent Directory、路径设置器和文件管理

1.6.1Current Directory当前目录浏览器简介

在缺省情况下,当前当前目录浏览器位于MATLAB桌面的左下方后台。点击窗标“Current Directory”可使目录浏览器在前台展现。再点击该窗口的键“↗”,可以引出如图1.6.1所示脱离操作桌面的几何独立的当前目录浏览器。

图 1.6-1

一用户目录和当前目录设置

应尽量为自己建立一个专门的工作目录,即“用户目录”用来存放自己创建的文件。尽管,matlab\work允许用户存放文件,但用户最好把它仅作为临时工作目录使用。在MATLAB开始工作时,就应该把用户自己的“用户目录”设置为当前目录。用户目录设置成当前目录的方式有两种。

1.交互式界面设置法

在MATLAB操作界面的右上方,或者当前目录浏览器的左上方,都有一个当前目录设置区。它包括:目录设置栏和浏览建。用户或者在目录设置栏中直接填写待设置的目录名,或者借租浏览键和鼠标选择待设置目录。

2.命令设置法

通过指令设置当前目录是各种MATLAB版本都适用的基本方法。它不仅能在命令窗口执行,而且可以在M文件中使用。假设待设置的用户目录是D:\mat_dir,那么把它设置成当前目录的命令是cd D:\mat_dir.

二借助当前目录浏览器获取M和MAT文件信息

【例1.6.1-1】从图1.2-1所示MATLAB缺省桌面开始,叙述引出图1.6-1所示面貌的当前目录浏览器的操作过程。

Matlab6p5\toolbox\matlab\elmat

1.6.2MATLAB的搜索路径

1.6.3MATLAB搜索路径的扩展和修改

一何时需要修改搜索路径

二利用设置路径对话框修改搜索路径

图1.6-2

三利用指令path 设置路径

1.7W orkspace Browser和Array Editor

1.7.1Workspace Browser工作空间浏览器简介

图1.7-1

1.7.2现场菜单用于内存变量的查阅和删除

一内存变量查阅、删除的指令操作法

【例1.7.2-1】在指令窗中运用who, whos查阅MATLAB内存变量。

who

Your variables are:

A Bnumber D R XYZ Z y

B C DD X Y x

whos

Name Size Bytes Class

A 2x2 230 cell array

B 1x1 264 struct array

Bnumber 1x1 8 double array

C 2x2 408 sym object

D 1x2 4 char array

DD 2x2 8 char array

R 33x33 8712 double array

X 33x33 8712 double array

XYZ 33x33x3 26136 double array

Y 33x33 8712 double array

Z 33x33 8712 double array

x 1x33 264 double array

y 33x1 264 double array Grand total is 7722 elements using 62434 bytes

注:①who,whos指令操作对MATLAB的所有版本都使用。

②本例两条指令的差别仅在于获取内存变量信息的简单和详细程度

不同。

③读者运行who,whos指令后的变量列表随具体情况不同。本例的变

量列表是在本书作者进行特定操作后产生的。

【例1.7.2-2】在指令窗中运用clear指令可以删除内存中的变量。

clear Bnumber

who

Your variables are:

A B C D DD R X XYZ Y Z x y

二内存变量查阅和删除的现场菜单操作法

图1.7-2

【例1.7.2-3】通过“工作空间浏览器”的运作,采用图形显示内存变量Z 。

图1.7-3

【例1.7.2-4】通过“工作空间浏览器”删除内存变量。

1.7.3Array Editor数组编辑器和大数组的输入

在指令窗中输入较大规模数组的操作方法显得比较笨拙。此时,建议采用数组编辑器进行,具体操作方法如下:

①在指令窗里,向一个新变量赋“空”阵。

②在内存浏览器中,双击该变量,打开数组编辑器。

③在数组编辑器左上方的“行维”、“列维”栏中填写待建数组的“大小”,于

是在编辑窗中就出现待填写的数组元素格。

④逐格填写元素值,直到完成为止。

图 1.7-4

1.7.4数据文件的存取

一存取数据文件的指令操作法

二通过内存变量浏览器实现数据文件的存取(1)产生保存全部内存变量的数据文件的操作方法

图1.7-5

【例1.7.4-1】数据的存取。(假定内存中已经存在变量X,Y,Z)(1)

mkdir('c:\','my_dir');

cd c:\my_dir

save saf X Y Z

dir

. .. saf.mat

(2)

clear

load saf Z

who

Your variables are:

Z

1.8L aunch Pad交互界面分类目录窗

图1.8-1

1.9E ditor/Debugger和脚本编写初步

1.9.1Editor/Debugger M文件编辑调试器简介

一编辑调试器的开启

缺省的情况下,M文件编辑器(Editor/Debugger)不随MATLAB的启动而开启,通常只在编写M文件时才启动如图的M文件编辑器窗口。

M文件编辑器的启动方法:

点击MATLAB桌面上的图标,或选中菜单项[File:New:M-File],可打开空白的M文件编辑器。

图 1.9-1

1.9.2M脚本文件编写初步

M脚本文件是指:

(1)该文件中的指令形式和前后位置,与解决同一个问题时在指令窗中输入的那组指令没有任何区别。

(2)MATLAB在运行这个脚本时,只是简单地从文件中读取那一条条指令,送到MATLAB中去执行。

(3)与在指令窗中直接运行指令一样,脚本文件运行产生的变量都驻留在MATLAB基本工作空间中。

(4)文件扩展名是“.m”.

【例1.9.2-1】编写解算例1.3.4-1题目的M脚本文件,并运行之。

操作步骤:

(1)点击MATLAB桌面上的图标,弹出如图1.9.1的M文件编辑器。

(2)把例1.3.4-1中的指令全部写入M文件编辑调试器的空白框中。为标志该文件的名称,在

空白框第一行中写入包含文件名的注释。在此所取的文件名是try1.m。

(3)点击M文件编辑器的保存图标,或选中[File:Save]下拉菜单项,便出现标准的文件保存

对话框。

(4)在文件保存对话框中,选定目录(如mydir),填写文件名(如try1),再按[保存]键,

于是就把try1.m脚本文件存放到了mydir目录上。

(5)选中M文件编辑器下拉菜单项[Debug:Run],就可在图形窗中看到如图所示的曲线了。

1.10帮助系统

1.10.1帮助方式概述

一“纯文本”帮助

【例1.10.1-1】在指令窗中运行help 的示例。

(1)

help help

HELP On-line help, display text at command line.

HELP, by itself, lists all primary help topics. Each primary topic corresponds to a directory name on the MATLABPATH.

...... ...... ......

(2)

help

HELP topics:

matlab\general - General purpose commands.

matlab\ops - Operators and special characters.

matlab\lang - Programming language constructs.

matlab\elmat - Elementary matrices and matrix manipulation. matlab\elfun - Elementary math functions.

...... ...... ......

For more help on directory/topic, type "help topic".

(3)

help elmat

Elementary matrices and matrix manipulation.

Elementary matrices.

zeros - Zeros array.

ones - Ones array.

eye - Identity matrix.

...... ...... ......

matlab的RBF-BP神经网络讲义

matlab的RBF BP神经网络讲义 一、RBF神经网络 1985年,Powell提出了多变量插值的径向基函数(Radical Basis Function,RBF)方法, 1988年,Moody和Darken提出了一种神经网络结构,即RBF神经网络。 RBF网络是一种三层前向网络,其基本思想是:(1)用RBF作为隐单元的“基”构成隐含层空间,将输入矢量直接(即不需要通过权连接)映射到隐空间(2)当RBF的中心点确定后,映射关系也就确定(3)隐含层空间到输出空间的映射是线性的。 newrb()函数 功能 建立一个径向基神经网络 格式 net = newrb(P,T,GOAL,SPREAD,MN,DF) 说明 P为输入向量,T为目标向量,GOAL为圴方误差,默认为0,SPREAD为径向基函数的分布密度,默认为1,MN为神经元的最大数目,DF为两次显示之间所添加的神经元神经元数目。 例子: 设[P,T]是训练样本,[X,Y]是测试样本; net=newrb(P,T,err_goal,spread); %建立网络 q=sim(net,p); e=q-T; plot(p,q); %画训练误差曲线 q=sim(net,X); e=q-Y; plot(X,q); %画测试误差曲线 二、BP神经网络 训练前馈网络的第一步是建立网络对象。函数newff()建立一个可训练的前馈网络。这需要4个输入参数。 第一个参数是一个Rx2的矩阵以定义R个输入向量的最小值和最大值。 第二个参数是一个设定每层神经元个数的数组。 第三个参数是包含每层用到的传递函数名称的细胞数组。 最后一个参数是用到的训练函数的名称。 举个例子,下面命令将创建一个二层网络。它的输入是两个元素的向量,第一层有三个神经元(3),第二层有一个神经元(1)。 第一层的传递函数是tan-sigmoid,输出层的传递函数是linear。 输入向量的第一个元素的范围是-1到2[-1 2],输入向量的第二个元素的范围是0到5[0 5],训练函数是traingd。 net=newff([-1 2; 0 5],[3,1],{'tansig','purelin'},'traingd'); 这个命令建立了网络对象并且初始化了网络权重和偏置,因此网络就可以进行训练了。 我们可能要多次重新初始化权重或者进行自定义的初始化。 下面就是初始化的详细步骤。 在训练前馈网络之前,权重和偏置必须被初始化。初始化权重和偏置的工作用命令init来实

MatLab讲义

2011年数学中国国赛培训讲座 Matlab的基础及数学建模中的应用 周吕文:zhou.lv.wen@https://www.doczj.com/doc/3a9331305.html, 大连大学数学建模工作室&中国科学院力学研究所 2011年7月

第一部分 MatLab基础 1 简单介绍 MATLAB是Matrix Laboratory“矩阵实验室”的缩写。MatLab语言是由美国的Clever Moler博士于1980年开发的,初衷是为解决“线性代数”课程的矩阵运算问题。1984年由美国 MathWorks公司推向市场,历经十多年的发展与竞争,现已成为国际公认的最优秀的工程应用开发环境。MATLAB功能强大、简单易学、编程效率高,深受广大科技工作者的欢迎。 在数学建模竞赛中,由于只有短短的三到四天,而论文的评判不仅注重计算的结果更注重模型的创造性等很多方面,因此比赛中把大量的时间花费在编写和调试程序上只会喧宾夺主,是很不值得的。使用MATLAB 可以很大程度上的方便计算、节省时间,使我们将精力更多的放在模型的完善上,所以是较为理想的。 这里快速的介绍一下MATLAB与数学建模相关的基础知识,并列举一些简单的例子,很多例子都是源于国内外的数学建模赛题。希望能帮助同学们在短时间内方便、快捷的使用MATLAB 解决数学建模中的问题。当然要想学好MatLab更多的依赖自主学习,一个很好的学习MatLab的方法是查看MatLab的帮助文档: z如果你知道一个函数名,想了解它的用法,你可以用'help'命令得到它的帮助文档:>>help functionname z如果你了解含某个关键词的函数,你可以用'lookfor'命令得到相关的函数: 2 基本命令与函数 基本运算 z变量的赋值 实数赋值>> x=5; 复数赋值>> x=5+10j; (或>>x=5+10i) z向量的一般值方法 行向量赋值:>>x=[1 2 3]; (或x=[1, 2 ,3]) 列向量赋值:>>y=[1;2;3]; 矩阵的赋值:>>x=[1 2 3; 4 5 6; 7 8 9]; z常用矩阵(zeros ones eye) n行m列0矩阵:>>x=zeros(n,m); n行m列1矩阵:>>x=ones(n,m); n 阶的单位阵:>>y=eye(n); z矩阵行列操作 >> A=[1 2 3;4 5 6;7 8 9] A= 1 2 3 4 5 6 7 8 9 >>x=A(1,3) %取第一行的第三列元素 x= 3

天津大学matlab讲义-应用基础第一章

MATLAB应用基础 赵国瑞 天津大学电子信息工程学院 计算机基础教学部 2000.3 制作

概述 MATLAB是世界流行的优秀科技应用软件之一。具有功能强大(数值计算、符号计算、图形生成、文本处理及多种专业工具箱)、界面友好,可二次开发等特点。 自1984年由美国MathWorks公司推向市场以来,先后发布了多个版本,1993年发布4.0版,1996年发布5.0版,1999年发布5.3版。目前发布的为6.5版。 MATLAB有专业和学生版之分。二者功能相同,但计算规模和计算难度有差别。 在国内外,已有许多高等院校把MATLAB列为本科生、研究生必须掌握的基本技能。我校自1999年列为研究生选修课程。而且有很多教师、研究生把它作为进行科研的重要工具。 国内关于MATLAB的书籍很多,如: 《精通MATLAB 5.3》张志涌等编著北京航空航天大学出版社,2000.8 《科学计算语言MATLAB简明教程》杜藏等编著南开大学出版社,1999.6 《精通MATLAB 5》张宜华编写清华大学出版社,1999.6 《精通MATLAB--综合辅导与指南》 Duane Hanselman、Bruce Littlefield编著李人厚等译较西安交通大学出版社,1998.1 等等 本课程主要介绍MATLAB 5.3的基本功能和基础知识。至于其包含的多种工具箱,如仿真工具箱、解非线性方程(组)工具箱、优化工具箱等,应通过本学习后,结合各专业自己进一步学习和使用。 第1章MATLAB基础 1.1 源文件(M-文件) 分为两类:函数文件和非函数文件。 都用扩展名.M 1.1.1函数文件 格式1(无返回值函数) function函数名(输入表) %称为函数头 函数体 例如: function box(opt_box); %BOX Axis box. % BOX ON adds a box to the current axes. % BOX OFF takes if off. % BOX, by itself, toggles the box state. % % BOX sets the Box property of the current axes. % % See also GRID, AXES. % Copyright (c) 1984-98 by The MathWorks, Inc. % $Revision: 1.5 $ $Date: 1997/11/21 23:32:59 $

MATLAB讲义

第一章基础准备及入门 什么是MATLAB? MATLAB是MathWorks公司于1984年推出的数学软件,是一种用于科学工程计算的高效率的高级语言。MATLAB最初作为矩阵实验室(Matrix Laboratory),主要向用户提供一套非常完善的矩阵运算命令。随着数值运算的演变,它逐渐发展成为各种系统仿真、数字信号处理、科学可是化的通用标准语言。 在科学研究和工程应用的过程中,往往需要大量的数学计算,传统的纸笔和计算机已经不能从根本上满足海量计算的要求,一些技术人员尝试使用Basic,Fortran,C\C++等语言编写程序来减轻工作量。但编程不仅需要掌握所用语言的语法,还需要对相关算法进行深入分析,这对大多数科学工作者而言有一定的难度。与这些语言相比, MATLAB的语法更简单,更贴近人的思维方式。用MATLAB编写程序,犹如在一张演算纸上排列公式和求解问题一样高效率,因此被称为“科学便笺式”的科学工程计算语言。 MATLAB由主包和功能各异的工具箱组成,其基本数据结构是矩阵。正如其名“矩阵实验室”,MATLAB起初主要是用来进行矩阵运算。经过MathWorks 公司的不断完善,时至今日,MATLAB已经发展成为适合多学科、多工作平台的功能强大的大型软件。 本章有两个目的:一是讲述MATLAB正常运行所必须具备的基础条件;二是简明系统地介绍高度集成的Desktop操作桌面的功能和使用方法。 本章的前两节分别讲述:MATLAB的正确安装方法和MATLAB 环境的启动。因为指令窗是MATLAB最重要的操作界面,所以本章用第 1.3、1.4 两节以最简单通俗的叙述、算例讲述指令窗的基本操作方法和规则。这部分内容几乎对MATLAB各种版本都适用。 MATLAB6.x 不同于其前版本的最突出之处是:向用户提供前所未有的、成系列的交互式工作界面。了解、熟悉和掌握这些交互界面的基本功能和操作方法,将使新老用户能事半功倍地利用MATLAB去完成各种学习和研究。为此,本章特设几节用于专门介绍最常用的交互界面:历史指令窗、当前目录浏览器、工作空间浏览器、内存数组编辑器、交互界面分类目录窗、M文件编辑/调试器、及帮助导航/浏览器。 本章是根据MATLAB6.5版编写的,但大部分内容也适用于其他6.x版。 1.1M ATLAB的安装和内容选择

MATLAB软件基础知识讲义(doc 74页)

MATLAB软件基础 §1MATLAB 概述 MATLAB 是MATrix LABoratory(“矩阵实验室”)的缩写,是由美国MathWorks 公司开发的集数值计算、符号计算和图形可视化三大基本功能于一体的,功能强大、操作简单的语言。是国际公认的优秀数学应用软件之一。 20世纪80年代初期,Cleve Moler与John Little等利用C语言开发了新一代的MATLAB语言,此时的MATLAB语言已同时具备了数值计算功能和简单的图形处理功能。1984年,Cleve Moler与John Little等正式成立了Mathworks公司,把MA TLAB 语言推向市场,并开始了对MATLAB工具箱等的开发设计。1993年,Mathworks公司推出了基于个人计算机的MATLAB 4.0版本,到了1997年又推出了MATLAB 5.X版本(Release 11),并在2000年又推出了最新的MATLAB 6版本(Release 12)。 现在,MATLAB已经发展成为适合多学科的大型软件,在世界各高校,MATLAB已经成为线性代数、数值分析、数理统计、优化方法、自动控制、数字信号处理、动态系统仿真等高级课程的基本教学工具。特别是最近几年,MATLAB在我国大学生数学

建模竞赛中的应用,为参赛者在有限的时间内准确、有效的解决问题提供了有力的保证。 概括地讲,整个MATLAB系统由两部分组成,即MATLAB 内核及辅助工具箱,两者的调用构成了MATLAB的强大功能。MATLAB语言以数组为基本数据单位,包括控制流语句、函数、数据结构、输入输出及面向对象等特点的高级语言,它具有以下主要特点: 1)运算符和库函数极其丰富,语言简洁,编程效率高,MATLAB 除了提供和C语言一样的运算符号外,还提供广泛的矩阵和向量运算符。利用其运算符号和库函数可使其程序相当简短,两三行语句就可实现几十行甚至几百行C或FORTRAN的程序功能。 2)既具有结构化的控制语句(如for循环、while循环、break 语句、if语句和switch语句),又有面向对象的编程特性。 3)图形功能强大。它既包括对二维和三维数据可视化、图像处理、动画制作等高层次的绘图命令,也包括可以修改图形及编制完整图形界面的、低层次的绘图命令。 4)功能强大的工具箱。工具箱可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图

Matlab基础知识点汇总

MATLAB讲义 第一章 MATLAB系统概述 1.1 MATLAB系统概述 MATLAB(MATrix LABoratory)矩阵实验室的缩写,全部用C语言编写。 特点: (1)以复数矩阵作为基本编程单元,矩阵运算如同其它高级语言中的语言变量操作一样方便,而且矩阵无需定义即可采用。 (2)语句书写简单。 (3)语句功能强大。 (4)有丰富的图形功能。如plot,plot3语句等。 (5)提供了许多面向应用问题求解的工具箱函数。目前,有20多个工具箱函数,如信号处理、图像处理、控制系统、系统识别、最优化、神经网络的模糊系统等。 (6)易扩充。 1.2 MATLAB系统组成 (1)MATLAB语言 MATLAB语言是高级的矩阵、矢量语言,具有控制流向语句、函数、数据结构、输入输出等功能。同时MATLAB又具有面向对象编程特色。MATLAB语言包括运算符和特殊字符、编程语言结构、字符串、文件输入/输出、时间和日期、数据类型和结构等部分。 (2)开发环境 MATLAB开发环境有一系列的工具和功能体,其部分具有图形用户界面,包括MATLAB桌面、命令窗口、命令历史窗口、帮助游览器、工作空间、文件和搜索路径等。 (3)图形处理 图形处理包括二维、三维数据可视化,图像处理、模拟、图形表示等图形命令。还包括低级的图形命令,供用户自由制作、控制图形特性之用。 (4)数学函数库 有求和、正弦、余弦等基本函数到矩阵求逆、求矩阵特征值和特征矢量等。 MATLAB数学函数库可分为基本矩阵和操作、基本数学函数、特殊化数学函数、线性矩阵函数、数学分析和付里叶变换、多项式和二重函数等。 (5)MATLAB应用程序接口(API) MATLAB程序可以和C/C++语言及FORTRAN程序结合起来,可将以前编写的C/C++、FORTRAN语言程序移植到MATLAB中。 1.3 MATLAB的应用围包括: MATLAB的典型应用包括: ●数学计算 ●算法开发 ●建模、仿真和演算 ●数据分析和可视化 ●科学与工程绘图 ●应用开发(包括建立图形用户界面) 以矩阵为基本对象 第二章 Matlab基础

Matlab基础教程

1-1、基本运算与函数 在MATLAB下进行基本数学运算,只需将运算式直接打入提示号(>>)之後,并按入Enter键即可。例如: >> (5*2+1.3-0.8)*10/25 ans =4.2000 MATLAB会将运算结果直接存入一变数ans,代表MATLAB运算後的答案(Answer)并显示其数值於萤幕上。 小提示: ">>"是MATLAB的提示符号(Prompt),但在PC中文视窗系统下,由於编码方式不同,此提示符号常会消失不见,但这并不会影响到MATLAB的运算结果。 我们也可将上述运算式的结果设定给另一个变数x: x = (5*2+1.3-0.8)*10^2/25 x = 42 此时MATLAB会直接显示x的值。由上例可知,MATLAB认识所有一般常用到的加(+)、减(-)、乘(*)、除(/)的数学运算符号,以及幂次运算(^)。 小提示: MATLAB将所有变数均存成double的形式,所以不需经过变数宣告(Variable declaration)。MATLAB同时也会自动进行记忆体的使用和回收,而不必像C语言,必须由使用者一一指定.这些功能使的MATLAB易学易用,使用者可专心致力於撰写程式,而不必被软体枝节问题所干扰。 若不想让MATLAB每次都显示运算结果,只需在运算式最後加上分号(;)即可,如下例: y = sin(10)*exp(-0.3*4^2);

若要显示变数y的值,直接键入y即可: >>y y =-0.0045 在上例中,sin是正弦函数,exp是指数函数,这些都是MATLAB常用到的数学函数。 下表即为MATLAB常用的基本数学函数及三角函数: 小整理:MATLAB常用的基本数学函数 abs(x):纯量的绝对值或向量的长度 angle(z):复数z的相角(Phase angle) sqrt(x):开平方 real(z):复数z的实部 imag(z):复数z的虚部 conj(z):复数z的共轭复数 round(x):四舍五入至最近整数 fix(x):无论正负,舍去小数至最近整数 floor(x):地板函数,即舍去正小数至最近整数 ceil(x):天花板函数,即加入正小数至最近整数 rat(x):将实数x化为分数表示 rats(x):将实数x化为多项分数展开

matlab讲义要点

前期知识:高等数学,机械原理,液压传动,控制原理 学习目标:了解基本原理、掌握基本应用、熟练使用matlab 、精通机械工程的建模和仿真 本课计划:课堂学习、课后练习、 任务:要看课堂笔记 引例:斐波纳西数列的递推公式为)2()1()(--+=n n n F F F ,通项表达式是什么? 高等数学上册第48页。斐波纳西数列在优化设计和股票分析中有用处。 第1章 了解Matlab 本章要求:了解Matlab 的功能、组成 第1节 Matlab 的界面 1.命令窗口:输入命令和显示运行结果和寻求帮助的窗口。 第1个例子求不定积分 问题:在编写代码时不能输入或者不能显示汉字 解决办法:将use custom font 换成use desktop font

先定义一个符号变量x syms x 设2 11 )(x x f += 求不定积分 ?dx x f )( matlab 求解:int(1/(1+x .^2)) 详见l1_bdjf.m 最重要的问题一:工作路径 查看当前工作路径的命令是 pwd matlab 默认的路径为安装好的目录下work ,为了需要我们需要改换路径。 改换路径的方法有:(1)采用DOS 命令 mkdir('根目录名称','新目录名称') 例:mkdir('d:\','mywork') 如果d 盘下没有mywork 即创建,如有就会给出警告。 进入新建文件夹 cd d:\mywork (2)采用matlab 命令 editpath ,pathtool (3)通过matlab 界面 [file]菜单->set path 难点:我想将打开MATLAB 时的默认工作路径改为F:\Program\MATLAB\WorkSpace\ ,只需要在原来的默认路径(bin)下创建一个名为startup.m 的文件,内容为相对路径 cd ..\..\WorkSpace\ 或绝对路径 cd F:\Program\MATLAB\WorkSpace\ 即可。再次打开MA TLAB 时便会自动执行startup.m 文件,将工作路径转至WorkSpace 下。 最重要的问题二:工作路径设置不能设置在有汉字的目录下或汉字文件夹,不支持汉字运算。 汉字用的是Unicode 编码一个字符占两个字节,字母用的是ASC Ⅱ编码,一个字母占一个字节。到2008版才能处理汉字。 初学者容易出现的错误就是把别人的程序拷在带汉字的文件夹下,运行出现错误。 如果我们已知某个文件名,但忘了在哪个文件夹下,可以用which 命令如which FUN what 命令:M-files in the current directory 思考题:what 和dir 的区别? 2.工作空间:显示数据的变量信息,包括变量名、字节大小、变量类型等。 输入 load wind 和load cities 加载了后缀为mat 的wind 和cities 数据文件 在命令窗口输入who 就可以列出空间的变量 在命令窗口输入whos 可以列出名称、大小和类型 whos -file 文件名.mat 可以查看加载前的数据信息。 3.历史记录: 显示所有在命令窗口输入的执行过的命令,清除历史的方法有两种

matlab讲义

2.3终值及其应用 2.3.1终值的概念 终值是与现值相对的概念,是指当前的一项现金流在未来某个时刻的价值。在求终值问题时应该考虑单利和复利的问题,一般如果没有特别的说明则都是按照复利(离散复利)进行计算。 在复利计息的情况下,当前的现金流PV在利率为r时到第t期期末的终值为: t FV) = 1(+ r PV 2.3.2终值的计算 在Matlab中,用来计算现金流的终值的函数有fvfix和fvvar两个。同样,-fix函数用来计算规则现金流的终值;而-var函数则用来计算不规则现金流的终值。 【例2.9】一投资者的储蓄账户初始余额为$1500,在随后的10年中,每月末都会收到$200并存入该账户,银行的年利率为9%。试计算其到期时的价值。 通过执行fvfix函数命令: FutureVal = fvfix(Rate, NumPeriods, Payment, PresentVal, Due) 即可计算出该固定收入现金流的的终值。 变量解释: Rate:周期性收支的利息率,以小数的形式输入; NumPeriods:周期性收支的次数; Payment:每期收支的现金流数额; PresentVal:初始余额 Due:收支被预定或确定的时间:0表示在期末收支(默认值),1表示在期初收支(任选)。 输入命令: >>FutureVal = fvfix(0.09/12, 12*10, 200, 1500, 0) 输出结果: FutureVal = 42379.89 即该现金流到期时的价值为42379.89$。 【例2.10】设某投资者期初投资为$10,000,在随后的5年投资期中每年产生的收入流依次为$2000、$1500、$3000、$3800、$5000,年利率为8%。试计算该现金流到期时的价值。 通过执行fvvar函数命令: FutureVal = fvvar(CashFlow, Rate, IrrCFDates) 即可求出这个规则(周期性的)现金流的终值。 输入命令: >>FutureVal = fvvar([-10000 2000 1500 3000 3800 5000], 0.08) 输出结果: FutureVal = 2520.47 即该现金流到期时的价值为2520.47$。 如果期初投资的$10,000产生的是一个不规则的现金流(如下所示),则计算时要将期初的投资和各个现金流发生的日期也考虑进去。利率为9%。

天津大学matlab讲义-应用基础第二章

第2章MATLAB程序设计 MATLAB语言为解释型程序设计语言。在程序中可以出现顺序、选择、循环三种基本控制结构,也可以出现对M-文件的调用(相当于对外部过程的调用)。 由于 MATLAB开始是用FORTRAN语言编写、后来用 C语言重写的,故其既有FORTRAN的特征,又在许多语言规则方面与C语言相同。 2.1 顺序结构语句 在顺序结构语句中,包括表达式语句、赋值语句、输入输出语句、空语句等。 2.1.1 表达式语句 格式: 表达式,%显示表达式值 表达式;%不显示表达式值 表达式%显示表达式值 如: x + y, sin(x); –5 最后的表达式值暂保存在变量ans中。 2.1.2 赋值语句 格式: v =表达式,%结果送v并显示v v =表达式;%结果送v不显示v v =表达式%结果送v并显示v 2.1.3 空语句 格式:

, ; 2.1.4 输入语句 1、input语句(实际上是函数) 格式1: input(提示字符串) 功能: 显示提示字符串,可输入数字、字符串(两端用单引号括起)、或表达式 格式2: input(提示字符串,'s') 功能: 显示提示字符串,并把输入视为字符串 2、yesinput语句 格式: yesinput(提示字符串,缺省值,值范围) 功能: 显示提示字符串和缺省值,若只打入回车则以缺省值作为输入值,若输入的值不在指定范围内则认为输入无效,B并等待用户重新输入。 如: t=yesinput('指定线的颜色',… 'red','red|blue|green') 运行结果如下: 指定线的颜色(red):yellow %不在值内 指定线的颜色(red):blue %重输 t = blue x=yesinput('输入元素个数',10,[1,20]) 运行结果如下: 输入元素个数(10): x = 10 3、Keyboard语句 格式: Keyboard 功能: 暂停M-文件的执行,并等待用户从键盘输入命令以查看或改变变量的值,直到输入return命令而返回相应的M-文件继续执行。本语句用于调试M-文件。 4、pause语句 格式1: pause 功能:暂停,敲下任一键继续 格式2: pause(n)

matlab串口通信基础讲义

matlab串口通信基础讲义 ①支持基于串行接口(RS-232、RS-422、RS-485)、GPIB总线(IEEE2488、HPIB标准)、VISA总线的通信; ②通信数据支持二进制和文本(ASCII)两种方式,文本方式支持SCPI(Standard Commands for Programmable Instruments)语言; ③支持异步通信和同步通信; ④支持基于事件驱动的通信。 从以上的Matlab设备控制工具箱的特点可以看到,Matlab完全可以满足我们实现串行通信的要求。 3.1 Matlab对串行口控制的基础知识 Matlab对串行口的编程控制主要分为四个步骤。 ①创建串口设备对象并设置其属性。 scom=serial('com1');%创建串口1的设备对象scom scom.Terminator='CR';%设置终止符为CR(回车符),缺省为LF(换行符) scom.InputBufferSize=1024;%输入缓冲区为256B,缺省值为512B scom.OutputBufferSize=1024;%输出缓冲区为256B,缺省值为512B scom.Timeout=0.5;%Y设置一次读或写操作的最大完成时间为0.5s,缺省值为10s s.ReadAsyncMode='continuous'(缺省方式);%在异步通信模式方式下,读取串口数据采用连续接收数据(continuous)的缺省方式,那么下位机返回的数据会自动地存入输入缓冲区中. 注意:在些属性只有在对象没有被打开时才能改变其值,如InputBufferSize、OutputBufferSize属性等。对于一个RS-232/RS-422/RS-485串口设备对象,其属性的缺省值为波特率9 600b/s,异步方式,通信数据格式为8位数据位,无奇偶校验位,1位停止位。如果要设置的串口设置对象的属性值与缺省值的属性值相同,用户可以不用另行设置。 另外,设置串口设置对象的属性也可以用一条指令完成,如:scom=serial('COM1','BaudRate',38400,'Parity','none','DataBits',8,'StopBits',1)。也可以用set命令,如set(scom,'BaudRate',19200,'Parity','even')。创建了对象后可以在Matlab命令窗口直接敲对象名并回车,看到其基本属性和当前状态。若需要知道其全部的属性,可以用get(scom)命令。

基于MATLAB的时序逻辑电路设计与仿真上课讲义

基于M A T L A B的时序逻辑电路设计与仿真

课程设计任务书 学生姓名:田鑫专业班级:电子科学与技术 0703 班 指导教师:钟毅工作单位:信息工程学院 题目: 基于MATLAB的时序逻辑电路设计与仿真 初始条件: MATLAB 软件微机 要求完成的主要任务: 深入研究和掌握数字电路中时序逻辑电路的理论知识。利用MATLAB强大的图形处理功能、符号运算功能和数值计算功能,实现时序逻辑电路的设计和仿真。 一、以寄存器为例仿真下列波形 并行寄存器输出波形(以基本RS触发器构造); 移位寄存器输出波形(用D触发器构造) 二、以双向移位寄存器为例实现子系统的设计和封装并仿真下列波形 4位双向移位寄存器并行输出波形; 4位双向移位寄存器串行右移输出波形; 4位双向移位寄存器串行左移输出波形 三、以扭环计数器为例仿真下列波形 扭环计数器的输出波形(以JK触发器实现) 时间安排:

学习MATLAB语言的概况第1天 学习MATLAB语言的基本知识第2、3天 学习MATLAB语言的应用环境,调试命令,绘图能力第4、5天 课程设计第6-9天 答辩第10天 指导教师签名: 年月日 系主任(或责任教师)签名:年月日

目录 摘要 (4) Abstract (4) 绪论 (1) 1M A T L A B简介 (2) 1.1 MATLAB程序设计 (2) 1.2M A T L A B的特点 (2) 1.3MATLAB程序设计 (2) 1.4 M文件 (2) 1.5 SIMULINK仿真设计 (3) 1.5.1创建和使用模型 (3) 1.5.2选择和定制模块 (3) 1.5.3建立和编辑模型 (4) 1.5.4配置子系统 (4) 1.5.5条件执行子系统 (4) 2时序逻辑电路设计 (5) 2.1锁存器和触发器 (5) 2.1.1双稳态 (5)

讲义2 Matlab基本语句

讲义2 Matlab基本语句 一. 程序控制语句 1. 循环语句 MATLAB的循环语句包括for循环和while循环两种类型。 1)for循环 语法格式: for 循环变量 = 起始值:步长:终止值 循环体 end 起始值和终止值为一整形数,步长可以为整数或小数,省略步长时,默认步长为1。执行for循环时,判定循环变量的值是否大于(步长为负时则判定是否小于)终止值,不大于(步长为负时则小于)则执行循环体,执行完毕后加上步长,大于(步长为负时则小于)终止值后退出循环。 例1给矩阵A、B赋值。 MATLAB 语句及运行结果如下: k=5; a=zeros(k, k) %矩阵赋零初值 for m=1 : k for n=1: k a(m,n)=1/(m+n-1) end end for i=m : -1 : 1 b(i)=i end 运行结果: a= 1.0000 0.5000 0.3333 0.2500?0.2000 0.5000 0.3333 0.2500 0.2000 0.1667 0.3333 0.2500 0.2000 0.1667 0.1429

0.2500 0.2000 0.1667 0.1429 0.1250 0.2000 0.1667 0.1429 0.1250 0.1111 b= 1 2 3 4 5 2) while循环 语法格式: while 表达式 循环体 end 其执行方式为:若表达式为真(运算值非0),则执行循环体;若表达式为假(运算结果为0),则退出循环体,执行end后的语句。 例2 a=3; while a a=a-1 end 输出: a=2 a=1 a=0 2. 条件转移语句 条件转移语句有if和switch两种。 1) if语句 MATLAB中if语句的用法与其他高级语言相类似,其基本语法格式有以下几种: 格式一: if 逻辑表达式 执行语句 end

相关主题
文本预览
相关文档 最新文档