文档库 最新最全的文档下载
当前位置:文档库 › MATLAB讲义

MATLAB讲义

MATLAB讲义
MATLAB讲义

第一节 MATLAB 中的矩阵的输入

§1 直接输入

一、直接在工作窗中输入:

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

其意义是定义了矩阵 ,0101000075318642??????

? ??=A 二、如果矩阵中的元素是等步长的,可以用下面的方法

A=[1:0.2:2;1:6;2:2:12]

A=[1:5]'

“'”号在这里表示为转置,而 1:5 中间少了一个循环步长,此时将步长自动取为 1 。

§2 增删改

设已经定义 A=[1 2 3 4 5;10 8 6 4 2]; B=[0 1;1 0]; C=[1 2;2 4],

即已定义

A= B= C=

1 2 3 4 5 0 1 1 2

10 8 6 4 2 1 0 2 4

则命令:A=[[A(:,1:4);[C ,B]],[0 2 0 4]'] 将 A 定义成:

A= 而 A(:,3)=[]; 将删除 A 的第三列 ,得

1 2 3 4 0 A= 1 2 4 0

10 8 6 4 2 10 8 4 2

1 2 0 1 0 1 2 1 0

2 4 1 0 4 2 4 0 4

§3 命令生成

使用 MATLAB 命令生成矩阵一般使用下面的命令

1 命令 linspace ,它有两个格式:

a1=linspace(1,100)

%生成一个从1到100的有100 个元素的向量

a2=linspace(0,1)

%仍然是有 100 个元素但是是从 0 到 1 的向量

a3=linspace(0,-1) %请与上一个向量进行比较

上面是第一种格式 linspace(a,b),它是将 a 到 b 等分成 100份形成的向量。第二种

格式 linspace(a,b,n) 中的 n 为一个正整数,表示是从 a 到 b 等分成 n 份后形成的

向量。例如

a4=linspace(1,100,11)

%从1 到100 但只形成11 个元素的向量

a5=linspace(1,100,10) %自己体会这个命令作用

a6=linspace(0,1,11)'%加上了“'”表示转置

a7=linspace(0,-1,10) %自己体会这个命令作用

2 命令ones,zeros 分别形成元素全为1或全为零的矩阵它也有两种格式。请观察它们的作用:

ones(6,3) %生成6×3 阶元素全为 1 的矩阵

ones(5) %生成5 阶元素全为 1 的方阵

zeros(3,6) %生成3×6 阶元素全为零的矩阵

zeros(4) %生成四阶元素全为零的方阵

3 命令diag 生成对角阵及从矩阵的主对角线生成向量,例如:

diag([1 3 5 7]) %生成了以1 3 5 7 为主对角线的方阵:

ans=

1 0 0 0

0 3 0 0

0 0 5 0

00 0 7

相反如果先定义了一个三阶方阵:

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

显示:

A=

1 2 3

4 5 6

7 8 9

则命令a8=diag(A) 将用A 的主对角线生成新的列向量:

a8=

1

5

9

命令eye(n) 生成n 阶单位方阵,即主对角线上元素为1,其余元素为零的方阵。例如键入:A=eye(5) 将得到:

A=

1 0 0 0 0

0 1 0 0 0

0 0 1 0 0

0 0 0 1 0

0 0 0 0 1

第二节 MATLAB 文件处理

§1 文件编辑

如果要在 MATLAB 的工作窗定义矩阵,则用鼠标点击屏幕左上方的 File 选择

项,再从中选择 New 中的M-file 项并且用鼠标点击它,就打开了 MATLAB 文件

编辑窗并且可以在此窗中定义 MATLAB 矩阵了(注意对于已有的文件,可以选择 open 来打开它,然后对其进行修改)。在 MATLAB 文件编辑窗中定义的矩阵与工

作窗中定义的方法是完全一样。并且可以在MATLAB 文件编辑窗的菜单中使用菜

单命令直接运行。

可以在MATLAB 中使用菜单中的“File ”中的“Set path ”将当前工作文件夹定

义在你正在工作的文件夹。

§2 MATLAB 工作窗中变量值的保存与调用

MATLAB 工作窗中的变量在退出 MATLAB 工作状态后值不能保存,如果需

要保存,可以使用命令 save 将其存储到磁盘上,命令格式有两种:

第一种是用二进制格式来存储。例如先定义三个矩阵:

A1=[0:3;2*ones(4);4:-1:1] ; A2=[1 3 2 4];A3=zeros(3,1);

生成下列矩阵与向量:

().000,4231,123422223210321????

? ??==????? ??=A A A

键入:

save file1 A1 A2 A3

%用二进制格式以文件名 file1.mat 存储 A1,A2,A3

save file2.m A1 A3 –ascii

%用 ascii 码以文件名 file2.m 存储 A1,A3

我们还要注意:用二进制格式存储的文件连变量名一起存储并可再重新调入时

恢复变量的值,而用 ASCII 码存储的文件只存储了变量的值,而变量名是没有的。

用二进制格式存储的变量,可用命令 load 调用,调用格式为:

load <磁盘文件名>

例如,前面用 save file1 存储了所有变量 A1,A2,A3,调用时只要键入

load file1 即可。

第三节 MATLAB 中的矩阵运算

§1 矩阵运算命令与通常线性代数命令运算的异同

一、MATLAB 在运行时是以矩阵为单位进行运算的。它通常有两种运算,第一种是矩

阵运算,运算时满足线性代数中矩阵运算所规定一切运算法则,如加、减、乘,乘

方即幂运算(当然运算要符合规定的条件,例如矩阵 A 与矩阵 B 相乘,必

须 A 的列数等于 B 的行数),运算符号:

A+B , A -B , A B (注意“*”不能少) A^n

二、不同之处:

1、与通常矩阵运算不同之处在:在线性代数中矩阵不能与数相加减,而在

MATLAB 的矩阵运算中允许矩阵与数相加减。

2、函数命令可以直接作用到矩阵的每一个元素。

3、线性代数中矩阵没有除法,而MA TLAB 中有矩阵除法,例如:

输入 A=[1:3;4:6;7:9];b=[14,32,50]';c=A\b

显示: c=

2

4

4、函数作用到矩阵的每一个元素,例如如果令 A=[1 1/2 1/3; 1/2 1/4 1/8]*pi ,即

定义 ,8423

2???? ??=ππππππA 则 .)sin()sin()sin()sin()sin()sin()sin(84232???? ??=ππππππA

三、MATLAB 中除法运算的规定与意义:

1、运算定义:设已经定义好矩阵 A 与矩阵 B ,如果矩阵 A 与矩阵B 的行的维

数相同,则 MATLAB 中可以用矩阵 A 左除矩阵 B ,即可以令:

X=A\B

如果矩阵 A 与矩阵B 的列的维数相同,则 MATLAB 中可以用矩阵 A 右除矩阵 B ,

即可以令:

X=B/A

2、矩阵除法的意义

给出线性方程组 AX=B ,则 X=A 给出线性方程组的一个解。而 X=B/A 给出了线

性方程组 XA=B 的一个解。

目前我们用 MATLAB 求线性方程组的解只有三个方法:

当 A 是可逆方阵时,X=inv(A)*B 给出线性方程组AX=B 的唯一解。但是 A 不

可逆时方法失效。

可用命令 rref 化线性方程组 AX=B 的增广矩阵为行最简阶梯矩阵方法来求

解,但线性方程组可能出现无解(称为“超定”)、唯一解(称为“恰定”)及无穷多

解(称为“欠定”)的情形。

无论 A 是否可逆都可用MATLAB 除法求解,并且无论何种情形都是唯一解。

当方程存在唯一解时,三种方法求出的解是一样的。但是用除法作的解一般精

度更高。

方程为“超定”或者“欠定”时解意义则不同。

线性方程组 AX=b 为欠定时有无穷个解,X=A\b 得到其中解分量中零元素为最多

的一个特解。

线性方程组 AX=b 为超定时是无解的, 用

X=A\b

得到的是使范数 ||AX-b|| 为最小的解。我们不详细说明这个范数的意义,可理解

为使 AX-b 最接近于零的解。

例如方程组

??

???=++=++=++.50987,32654,1432z y x z y x z y x

通解为:

,121321????

? ??-+????? ??=????? ??t z y x

输入 A=[1:3;4:6;7:9];b=[14,32,50]';c=A\b

显示: c=

2

4

是其中有一个零分量的特解。

输入 d=[0 32 50]';g=A\d

显示 g =

1.0e+017 *

0.6305

-1.2610

0.6305

再输入 h=A*g-d

显示 h=32

96

14

因此 g 不满足 A*g=d ,只是使 A*g-d 尽可能接近于零。

§2 常用的数学运算命令

以下是一些在MATLAB 中最常用的数学运算命令(均用小写字母,命令的作用可在

MATLAB 中用 help <命令> 查询其作用与格式):

一、基本函数运算命令

1、三角函数: sin cos tan cot sec csc

2、反三角函数:asin acos atan acot asec acsc atan2(四象限反正切)

3、双曲函数: sinh cosh tanh coth sech csch

4、反双曲函数:asinh acosh atanh acoth asech acsch

5、复数:real imag conj angle

6、小数取整:fix(朝零方向),ceil(朝正无穷方向),floor(朝负无穷方向),round(四

舍五入)

7、对数与指数:log10 log exp

8、其它:sqrt abs sign sum prod solve

二、线性代数运算命令:

1、det inv rank rref eig cond

行列式求值命令 det , 矩阵求秩命令 rank ,求方阵的逆方阵命令,inv 求矩阵行最

简阶梯阵命令 rref ,求特征值与特征向量命令 eig ,求矩阵条件数命令 cond

三、多项式运算命令

MA TLAB 中用向量表示多项式,如 a=[ 1 2 3 0 4] 表示多项式:

,432234+++=x x x a

常用的多项式运算命令有:

1、多项式加减法:在次低的向量前面加零后使其元素个数相同,再按向量加减法

运算命令进行。

2、多项式 a 与多项式 b 相乘:c=conv(a, b);

3、多项式 a 除以多项式 b : [q, r]=deconv(a, b) q 是商, r 余项)

4、多项式求值: p1=polyval(a, x) (多项式 a 在点 x 处的值)

5、方阵多项式求值: p2=polyvalm(a, A) (矩阵多项式 a 在方阵 A 处的值)

6、多项式求根: p3=roots(a) (求多项式 a 的根)

7、多项式微分: p4=polyder(a)

8、多项式拟合: p5=polyfit(x,y,n)

例:x=[1 1.2 3 4.2 5]; y=x.^3-2*x.^2+3*x -1; p5=polyfit(x,y,3)

将得出: p5=1.0000 -2.0000 3.0000 -1.0000

四、高等数学中的数值运算命令

在MA TLAB 数值计算中很少有高等数学中的运算命令,下面只介绍两个:

1、求数值积分: trapz

2、差分: diff

MATLAB 中也有很多符号运算命令。但不在本课程中。在那些符号运算命令中能实

现许多高等数学中的运算。

五、显示格式

有 format rat, format long, format short, format long g, format short g,

format long e , format short e , format hex 等等。

第四节 MATLAB 的数组操作

前面我们谈到了 MATLAB 中有数与矩阵的加减法,这是线性代数中所没有的。

MATLAB 中还有许多与高等数学中内容不同的运算。这些运算对于求解实际问题

很有作用,它使编程比其它语言要简单方便得多。

MATLAB 中的数组运算就是其它计算机语言中所没有的使编程变得十分简单的

运算。

MATLAB 中的数组运算只在同阶矩阵中进行。

设 A,B 是两个已经定义好的同阶矩阵:

,,21222211121121

22221

11211??????? ??=??????? ??=mn m m n n mn m m n n b b b b b b b b b B a a a a a a a a a A 则数组运算 A.*B,A./B,A.^B 的值分别是: ,//////////.,*.2211222222212111`12121111221

122222221

2111`12121111??????? ??=??????? ??=mn mn m m m m n n n n mn mn m m m m n n n n b a b a b a b a b a b a b a b a b a B A b a b a b a b a b a b a b a b a b a B A .^^^^^^^^^.^2

211222222212111`12121111??????? ??=mn mn m m m m n n n n b a b a b a b a b a b a b a b a b a B A 除了前面讲过的数与矩阵的加减法(不算数组运算) 外,数与矩阵之

间还有下面的数组运算:

,^^^^^^^^^.^,//////////.21222211`121121222211`1211??????? ?

?=??????? ??=mn m m n n mn m m n n b a b a b a b a b a b a b a b a b a B a b a b a b a b a b a b a b a b a b a B a .^^^^^^^^^.^21

2222111211??????? ??=b a b a b a b a b a b a b a b a b a b A mn m m n n 从上面叙述可见矩阵与同阶矩阵之间(及数与矩阵之间)的数组运算的定义特点是:

1 定义在两个同阶矩阵或数与矩阵之间进行;

2 定义方法是前面一项与后面一项用小数点加运算符连结;

3 定义的实质是:当定义的运算在矩阵之间时,是相同位置上的元素进行由运

算符规定的运算。当定义的运算是矩阵与数之间,则是矩阵中的每一个元素与数进

行运算符规定的运算。

对于其他计算机语言,这些运算常常要通过双重循环才能完成,而在 MATLAB 中

只要简单地用“.”加运算符即可表示,这是 MATLAB 特别方便之处。

数组运算及函数运算定义容易记忆与使用,它在编程中十分方便,我们看后面

的例。

如果要画函数 e -x sin x 2 +1 在区间 [0,3] 上的图形,操作过程是:

x=0:0.01:3; %定义自变量 x 在区间 [0,3] 上的值

y=exp(x).*sin(x.^2)+1 %用数组运算计算函数值 y

plot(x,y) %作平面上的曲线图。

只用简单三行命令完成了在其他计算机语言中要用很长程序才能完成的程序,

这是 MATLAB 语言非常简便好用的原因。

第五节 MATLAB 作图

下面介绍 MATLAB 中的作图命令。

§1 二维作图命令plot

一、MATLAB 二维作图命令最常用的是 plot,除作图外,还有如下可控制的操作:

1、一张图上画多条曲线(可以使用hold命令)。

2、一个屏幕上开多个窗口作图(使用subplot命令)。

3、曲线选择线型、颜色(在每条曲线后加,’.b’ 或者,’color’,[1,0,0.5] 等)。

4、标注文字,使用命令:

title(‘字符’)图形标题

xlabel(‘字符’)x 轴标注,ylabel(‘字符’)y 轴标注,zlabel(‘字符’)z 轴标注,legend(‘字符’, ‘字符’,…) 可移动标注

text(x,y,(z),‘字符’) 在指定坐标标注

gtext(‘字符’) 用鼠标在图形中选择地方标注

5、坐标网格线显示与关闭命令grid

二、坐标轴控制(也适用于三维作图) axis

1、坐标轴刻度范围控制axis(xmin, xmax, ymin, ymax (, zmin, zmax))。

2、关闭坐标轴显示开关axis(‘off’) 或者axis off,axis(‘on’) 或者axis on

3、坐标轴等刻度命令axis(‘equal’) 或者axis equal

4、坐标轴等长命令axis(‘square’) 或者axis squal

5、使坐标等刻度与等长命令失效命令axis(‘normal’) 或者axis normal

三、下面介绍一个在实际应用中非常有用的命令:

ginput

该命令在三维空间中仍然可用,但效果不如二维空间中那么好。

四、背景色控制命令

figure(‘color’, [r, g, b]) 三维空间中此命令仍然适用。

五、程序标注

在程序中“%”后的部分用作标注。

六、还有许多二维作图命令,请大家参看有关参考书。我们仅就使用二维等值线contour命令用于求解线性方程组的例子。

MATLAB 二维作图命令contour可以用于求二维超越方程组的数值解。请看exmaple1.m:

x=[0:0.01:2.4995];

y=[0:0.01:2.4995]';

A=(0*y+1)*sin(x)+y.^2*(0*x+1)+log(5-(0*y+1)*x-y*(0*x+1))-7;

contour(x,y,A,[0,0])

hold on

B=3*(0*y+1)*x+2.^y*(0*x+1)-(5-(0*y+1)*x-y*(0*x+1)).^3+1;

contour(x,y,B,[0,0])

hold off

此程序用于求方程组:

???-=---+=--++.

1)5(23,7)5ln(sin 32y x x y x y x y 的数值解。

此方法的优点是:可以看到图形全貌,可以求出多解情形,可以获极高精度。

练习 1:求曲线x e

y x sin 2-=与曲线1)1cos(22++=x x y 在区间[0, π]上的所有交点。

练习 2:求方程组 ()()???=+-+-=+++.

4cos )2(,5sin 2222222y x y x y x y x 的数值解。要求将解代入方程后每个方程左方减去右方后的绝对值小于 0.00001。

§2 三维作图命令

一、MATLAB 三维作图曲线作图命令最常用的是 plot3,contour3。除作图外,还有

如下可控制的操作:

三维曲线作图是对参数式为

??

???≤≤===).(),(),

(),(b t a t Z z t Y y t X x

作图。例如螺旋线: ?????≤≤===)100(,2/,

sin ,cos πt t z t y t x

作图命令是

t=[0:0.01:10*pi];x=cos(t);y=sin(t);z=t/2; plot3(x,y,z)

contour3是三维等值线作图。

二、三维曲面作图

常用的三维曲面作图命令有:mesh , surf, meshc, meshz , waterfall, 我们重点介绍

mesh 与 surf 。这两个命令都是作曲面图形,但是 mesh 是用网格作图,而 surf 是

用曲面片作图。效果有少许不同,但作图编程是相同的(这个作图过程比较复杂)。事

实上它们都是用曲面参数式

?????≤≤≤≤===),,(),,(),

,(),,(d v c b u a v u z z v u y y v u x x

作的图,因此要画曲面图形,首先得会写上面的参数式。然后会用上面的参数式编

程。注意在编程时 z 都是二维矩阵,行数与向量 u 的维数相同,列数与 v 的维数

相同,x, y 可以是与 z 维数相同的二维矩阵也可以是向量。请看下面马鞍面

22y x z -= 的作图过程:

y=[ -1 :0.1: 1]’; x=y’; z=(0*y+1)*x..^2- y.^2* (0*x+1); mesh(x,y,z);

这个命令等价于

y= [-1 :0.1: 1]’; x=y’; z= ones(size(y))*x.^2 - y.^2*ones(size(x)); surf(x,y,z);

上面作的图是以 z 的高度作为图形色彩数据的(这是缺省时的数据)。如果加上颜色、

光照、纹理、视角等设置,可以得出十分漂亮的图形。请看 example2.m 。

有时作图的参数式要使用比较复杂的数学运算,例如 2001 年全国数学建模竞赛

时要求从血管的 100 张切片中读出血管的中心与半径。竞赛中要求将血管中心线向

三个坐标平面投影。但是我们根据血管中心线可画出血管的三维图象。显然这更好

看更直观。曲面参数式的推导见《广西大学学报》2003年第3期,而程序请看

example3.m 。

练习3:画一个求生圈的图。

提示:求生圈的曲面参数方程为:

)2,0(),sin(),

sin())cos(5(),cos())cos(5(π≤≤?????=+=+=v u u z v u y v u x

练习4:画出在二维区域 x 2 + y 2≤1 上的马鞍面 z = x 2- y 2。

练习5:作曲面 z =x 2+y 2 与平面 4x +2y +5z =20 相交的图(要

求平面只画出被曲面截出的部分,参考右图)。

练习6:作圆柱面 x 2+z 2=1 与圆柱面 y 2+z 2=1 相交的图(要

求平面只画出在每卦限的部分)。

§3 MATLAB 动画

MATLAB 中的动画功能不是太强,并且需要使用 MATLAB 的底层作图命令,即图形的句柄操作。

MATLAB 中的作图命令如果使用了赋值语句,即将作图赋给了某个变量,则该变量即为此张图形的句柄。可以对此句柄设置一些图形属性,对于句柄图形我们在前面已经用到了,例如马鞍面的图形中的赋值语句

aa=surf(X,Y,Z);

就是将曲面的句柄赋给aa了,然后用

set(aa, 'Facecolor', [0,0.7,0], bb,' Facecolor',[ 0.7,0,0.7])

设置曲面颜色。

MATLAB 动画实际上就是在句柄中设置了图形将是被复盖还是改写等属性,然后在作图时按不同的位置画图(同时擦除前面的图形或者复盖前面的图形以实现动画)。

由于作动画一般要涉及编程,我们将此部分内容放到第四节中。

在图形的属性控制中要注意区分各种图形对象:figure, axes, line, patch, surface, image, text 等等。

§4 MATLAB 图象处理

MATLAB 可对图象作处理,常用的简单命令有:

imread, image, colormap

imread 可以读出图象数据,而image可以将图象数据显示为图象,而colormap可以设置图象色彩。

练习7:本文件夹中有一张图“figure0”,是2002年全国数学建模大赛中的一张图,要求从图中读出图形的内切圆圆心与半径。

在MA TLAB图象处理中还有光照、色彩、视角等许多处理。由于水平与时间关系,只能简单介绍。

第六节 MATLAB 编程

一、MATLAB 编程

MATLAB 可以单步运行,也可以编程运行。

与所有软件编程一样,MA TLAB中也有条件、分支、循环等语句。

条件语句:if … end 或者if … else … end

循环语句:for … end 或者while … end

需要指出,在其他许多语言中需要循环的地方在MATLAB中是不需要循环的。

下面我们看一个动画程序:画单摆的运动程序:pend.m。

figure('color',[1 1 1])

plot([-0.2;0.2],[0;0],'color','y','linestyle','-','linewidth',10);%画悬线的横梁

g=9.8; %重力加速度

l=1; %线长

theta0=pi/6; %初始角度

x0=l*sin(theta0); %初始x 值

y0=-l*cos(theta0); %初始y 值

axis([-0.75,0.75,-1.25,0]); %画坐标范围

axis('off'); %关闭坐标显示

head=line(x0,y0,'color','r','linestyle','.','erasemode','xor','markersize',40); %定义小球格式body=line([0;x0],[0;y0],'color','b','linestyle','-','erasemode','xor'); %定义悬线格式

t=0; %时间初值

dt=0.0005; %时间增量

while 1 %死循环(关闭窗口后中止循环) t=t+dt;

theta=theta0*cos(sqrt(g/l)*t); %计算时刻t 时的幅角

x=l*sin(theta); %计算时刻t 时的x 坐标

y=-l*cos(theta); %计算时刻t 时的y 坐标

set(head,'xdata',x,'ydata',y); %计算时刻t 时小球的位置set(body,'xdata',[0;x],'ydata',[0;y]); %计算时刻t 时悬线的位置drawnow; %重画小球与悬线

end

二、程序与函数

将MA TLAB运行中的每一句写在扩展名为“m”的文本文件中,就得到MATLAB 程序文件。程序中的变量值都在工作窗中。如果是写成

function [u , v, …]=fun(x , y, …)

则是MATLAB函数,函数参数x , y 可以是变量、向量或者矩阵,返回值u, v 也可以是变量、向量或者矩阵,存储时函数名必须与存储文件名相同。

例如,运行redotree(n, B) (设的初值为B=[0 0;0 1],取n=5 或者n=6),可以画

出一棵树的图形。而运行leafage1(n)可以画出一张树叶。

练习8:作曲面 z =x 2+y 2 与平面 4x +2y +5z =c ,c 从 40 变化到 20 的动画图

第七节 数据拟合

MATLAB 有数据插值与数据拟合功能,使用的命令是:interpn(注意这里的“n ”必须是一个具体正整数,一般为 n=1, 2, 3, …,表示)。

例如:运行exmaple51.m ,对南半球气旋作可视化显示图。

%exmaple51.m--南半球气旋数据,程序实现气旋数据可视化

y=5:10:85;x=1:12;

z=[ 2.4, 1.6, 2.4, 3.2, 1.0, 0.5, 0.4, 0.2, 0.5, 0.8, 2.4, 3.6; 18.7, 21.4, 16.2, 9.2, 2.8, 1.7, 1.4, 2.4, 5.8, 9.2, 10.3, 16; 20.8, 18.5, 18.2, 16.6, 12.9, 10.1, 8.3, 11.2, 12.5, 21.1, 23.9 ,25.5; 22.1, 20.1, 20.5, 25.1, 29.2, 32.6, 33.0, 31.0, 28.6, 32.0, 28.1, 25.6; 37.3, 28.8, 27.8, 37.2, 40.3, 41.7, 46.2, 39.9, 35.9, 40.3, 38.2, 43.4; 48.2, 36.6, 35.5, 40, 37.6, 35.4, 35, 34.7, 35.7, 39.5, 40, 41.9; 25.6, 24.2, 25.5, 24.6, 21.1, 22.2, 20.2, 21.2, 22.6, 28.5, 25.3, 24.3;

5.3, 5.3, 5.4, 4.9, 4.9, 7.1, 5.3, 7.3, 7, 8.6,

6.3, 6.6; 0.3, 0, 0, 0.3, 0, 0, 0.1, 0.2, 0.3, 0, 0.1, 0.3];

[xi,yi]=meshgrid(1:12,5:85); zi=interp2(x,y,z,xi,yi,'cubic');

surf(xi,yi,zi)

练习9:一天24小时每两小时的温度记录如下:

11 9 9 10 18 24 28 27 25 20 18 15 13

请用插值方法用出一天24小时的温度变化图。

用命令 curvefit(‘fun’,x0 , x , y) 可以作曲线拟合,其拟合功能比 MATHMATICA

更强。如某数据近似符合规律y (t )=a+be -kt ,已知从100到1000时分别对应于

cdata=0.00001*[454 499 535 565 590 610 626 639 650 659];

求 a, b, k 使

()∑=--+10

12

i i Kt c be a i 尽可能地小。此问题的解可由运行exmaple52.m 得到。

附录:内插及曲线拟合

我们常常会有从实验或是对物理现象观察所收集到的数据,分析这些数据需要有辅助的工具。通常这些原始数据如果会制成图,是成点状分布。我们需要将这些点连成曲线,再进一步将曲线转换成有意义的数学函数,才能对数据做比较和分析。上述的过程涉及到内插(interpolation)及曲线拟合(curve-fitting),我们会在以下介绍。

1 内插

假设一组已知的数据其型态为f(x k), =1, 2, …, n, x1=a, x x n=c, 假设某些点x i并不属于上述的x k但是a≤x i≤c,如果我们要估计这些点的函数值f(x i) 就须要做内插(interpolation)。我们可视原数据所描述的函数复杂程度来选择不同的数值内插方法。

? 1 内插

o 1.1 一维内插

o 1.2 二维内插

o 1.3 Spline 内插

1.1 一维内插

线性内插是假设在二个已知数据中的变化为线性关系,因此可由已知二点的座标(a, b)去计算通过这二点的斜线,公式如下:

其中a

\pcxfile[12cm,5cm]{fig9_1.pcx}

\caption{线性式与spline 函数的曲线拟合}

线性内插是最简单的内插方法,但其适用范围很小;如果原来数据的函数f有极大的变化,假设其数据点之间为线性变化并不合理。所以我们可以用二次、三次方程组或是另一种称为spline函数来近似原来数据的函数。MATLAB的一维内插函数是interp1,其语法为interp1(x,y,xi),interp1(x,y,xi,'method');其中的x,y是原已知的数据的x,y值,而xi则是要内插的数据点,另外method可以设定内插方法有

linear,cubic,spline,分别是一次、三次方程组和spline函数,其中预设方法是linear。

如果数据的变化较大,以spline函数内插所形成的曲线最平滑,所以效果最好。而三次方程组所得到的内插曲线平滑度,则介于线性与spline函数之间。

我们以下面的例子说明。假设有一个汽车发动机在定转速下,温度与时间(单位为sec)的三次量测值如下

其中温度的数据从20o C变化到503o C,如果要估计在t=2.6, 4.9 sec 的温度,可以下列指令计算

x=[0 1 2 3 4 5]'; % 键入时间

y=[0 20 60 68 77 110]'; % 键入第一组时间

y1=interp1(x,y,2.6) % 要内插的数据点为2.6

y1 = % 对应2.6 的函数值为64.8

64.8

y1=interp1(x,y,[2.6 4.9]) %内插数据点为2.6, 4.9,注意用[ ]将多个内插点放在其中

y1 =

64.8

106.7

y1=interp1(x,y,2.6,'cubic') % 以三次方程组对数据点2.6 作内插

y1 = % 对应2.6 的函数值为66.264

66.264

y1=interp1(x,y,2.6,'spline') % 以spline函数对数据点2.6 作内插

y1 = % 对应2.6 的函数值为66.368

66.368

以下的例子还配合绘图功能,用以比较不同内插方法的差异。

h=1:12;

temp=[5 8 9 15 25 29 31 30 22 25 27 24]; % 这组温度数据变化较大

plot(h,temp,'--',h,temp,'+') % 将线性内插结果绘图

h_3=1:0.1:12 % 要每0.1小时估计一次温度值

t_3=interp1(h,temp,h_3,'cubic') % 以三次方程组做内插

t_s=interp1(h,temp,h_3,'spline') % 以spline函数做内插

hold on

subplot(1,2,1)

plot(h,temp,'--',h,temp,'+',h_3,t_3) % 将线性及三次方程组内插绘图

subplot(1,2,2)

plot(h,temp,'--',h,temp,'+',h_3,t_s) % 将线性方程组及spline内插绘图

hold off

7.1.2 二维内插

二维内插与一维内插的区别是二维内插数据为二维,语法结构为interp2(X,Y,Z,XI,YI),其中X,Y,Z为已知数据,Z=Z(X,Y),而XI,YI 为要插值的数据点;如果语法结构为interp2(X,Y,Z,XI,YI,'method'),其中method可以为linear,cubic表示线形或三次方插值,我们以下例说明:

假设一汽车的转速(单位为:rpm)、温度(单位为:o C)、时间(单位为:sec)如下表:

其中温度的数据为20o C到503o C,如果要估计t=2.6, sec, rpm=2500的温度,可以利用下面的语句:

d2(:,1)=[0 1 2 3 4 5]'; % 将时间输入

d2(:,2)=[2000 20 60 68 77 110]'; % 将rpm=2000的温度输入

d2(:,3)=[3000 110 180 240 310 405]'; % 将rpm=3000 的温度输入

d2(:,4)=[4000 176 220 349 450 503]'; % 将rpm=4000 的温度输入

t=d2(2:6,1); %选择做内插的时间

rpm=d2(1,2:4); % 选择做内插的rpm

temp=d2(2:6,2:4); % 选择做内插的温度

temp_i=interp2(rpm,t,temp,2500,2.6) % 以线形内插决定rpm=2500,t=2.6 的温度

temp_i =

140.4000

1.3 Spline 内插

关于spline内插我们在1.1节已介绍过,它可以用interp1指定内插方式为spline来做。另一种方式也可以用spline(x,y,xi)来做,其中的x,y,xi的用法与interp1中的语法相同。事实上这二种方法采用相同的spline 函数做运算,也就是当我们执行

interp1(x,y,xi,'spline')时,MATLAB即呼叫spline(x,y,xi)做运算,再将计算结果传回interp1。

我们还是以在1.1 节相同的数据做spline 内插示范,

x=[0 1 2 3 4 5]';

y=[0 20 60 68 77 110]';

y1=spline(x,y,2.6)

y1 =

67.3

y1=spline(x,y,[2.6,4.9])

y1 =

67.3 105.2

3 曲线拟合

曲线拟合(curve-fitting) 故名思义就是要将一组离散的数据以一个近似的曲线方程组来代表。有了这个解析形态的方程组,我们就可以很方便去运用它。曲线拟合与前述的内插有许多相似之处,但是这二者最大的区别在于曲线拟合要找出一个曲线方程组而内插仅是要求出内插数值即可。

要找出近似一组数据(也就是最能代表这些数据)的曲线方程组,有许多选择,从简单的一阶线性方程组到高阶的多项式都有。我们以下就介绍二种方法:线性回归(linear regression),多项式回归(polynomial regression)。

3 曲线拟合

o 3.1 线性回归

o 3.2 多项式回归

o 3.3 多项式拟合及函数计算

3.1 线性回归

我们以一简单数据组来说明什么是线性回归。假设有一组数据型态为y=y(x),其中

x={0, 1, 2, 3, 4, 5}, y={0, 20, 60, 68, 77, 110}

如果我们要以一个最简单的方程组来近似这组数据,则非一阶的线性方程组莫属。先将这组数据绘图如下plot(x, y)

图中的斜线是我们随意假设一阶线性方程组y=20x,用以代表这些数据的一个方程组。以下将上述绘图的MATLAB 指令列出,并计算这个线性方程组的y 值与原数据y 值间误差平方的总合。

x=[0 1 2 3 4 5];

y=[0 20 60 68 77 110];

y1=20*x; % 一阶线性方程组的 y1 值

sum_sq = sum(y-y1).^2); % 误差平方总合为 573

axis([-1,6,-20,120])

plot(x,y1,x,y,'o'), title('Linear estimate'), grid

如此任意的假设一个线性方程组并无根据,如果换成其它人来设定就可能采用不同的线性方程组;所以我们 须要有比较精确方式决定理想的线性方程组。我们可以要求误差平方的总合为最小,做为决定理想的线性方 程序的准则,这样的方法就称为最小平方误差(least squares error)或是线性回归。MATLAB 的polyfit 函数提供了 从一阶到高阶多项式的回归法,其语法为polyfit(x,y,n),其中x,y 为输入数据组n 为多项式的阶数,n=1就是一阶 的线性回归法。polyfit 函数所建立的多项式可以写成

0111)(a x a x a x a x f n n n n ++++=--

从polyfit 函数得到的输出值就是上述的各项系数n n a a a a ,,,,110- ,以一阶线性回归为例n=1,所以只有10,a a 二个输出值。如果指令为coef=polyfit(x,y,n),则coef(1)= 0a , coef(2)= 1a ,...,coef(n+1)= n a 。注意上式对n 阶的多 项式会有 n+1 项的系数。我们来看以下的线性回归的示范:

x=[0 1 2 3 4 5];

y=[0 20 60 68 77 110];

coef=polyfit(x,y,1); % coef 代表线性回归的二个输出值

a0=coef(1); a1=coef(2);

ybest=a1*x+a0; % 由线性回归产生的一阶方程组

sum_sq=sum(y-ybest).^2); % 误差平方总合为 356.82

自动控制原理MATLAB实验报告

实验一 典型环节得M AT LAB 仿真 一、实验目得 1.熟悉M ATLAB 桌面与命令窗口,初步了解SIM ULINK 功能模块得使用方法、 2.通过观察典型环节在单位阶跃信号作用下得动态特性,加深对各典型环节响应曲线得理解。 3、定性了解各参数变化对典型环节动态特性得影响、 二、实验原理 1、比例环节得传递函数为 其对应得模拟电路及SIMULI NK 图形如图1所示。 2.惯性环节得传递函数为 uf C K R K R s C R R R Z Z s G 1,200,10012.021)(121121212===+-=+-=-= 其对应得模拟电路及S IMULINK 图形如图2所示。 3.积分环节(I)得传递函数为 其对应得模拟电路及SI MULINK 图形如图3所示。 4.微分环节(D)得传递函数为 其对应得模拟电路及SIMULINK 图形如图4所示、 ? 5.比例+微分环节(PD)得传递函数为 其对应得模拟电路及SIMUL INK 图形如图5所示。 6.比例+积分环节(PI)得传递函数为 其对应得模拟电路及SIMU LI NK 图形如图6所示。 图1 比例环节得模拟电路及SIMULINK 图形 图3 积分环节得模拟电路及及SIMULINK 图形 图4 微分环节得模拟电路及及SIMULINK 图形 图2惯性环节得模拟电路及SIMULINK 图形 图5比例+微分环节得模拟电路及SIMULINK 图形曲线

三、实验内容 按下列各典型环节得传递函数,建立相应得SIMULINK仿真模型,观察并记录其单位阶跃响应波形。 ①比例环节与; ②惯性环节与 ③积分环节 ④微分环节 ⑤比例+微分环节(PD)与 ⑥比例+积分环节(PI)与 四、实验报告 记录各环节得单位阶跃响应波形,并分析参数对响应曲线得影响。 ①比例环节: (如图7所示)(如图8所示) ②惯性环节: (如图9所示) (如图10所示) ③积分环节: (如图11所示) ④微分环节:(如图12所示) ⑤比例+微分环节(PD): (如图13所示) (如图14所示) ⑥比例+积分环节(PI): (如图15所示) (如图16所示)

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实验

《自动控制原理与系统》 实验报告 院系:材料科学与工程学院 班级: 1204022 姓名:朱子剑 学号: 120402227 时间: 2014 年 12 月

实验一控制系统的时域分析 一、实验目的 学习利用MATLAB进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、实验方法 (一)四种典型响应 1、阶跃响应: 阶跃响应常用格式: 1、;其中可以为连续系统,也可为离散系统。 2、;表示时间范围0---Tn。 3、;表示时间范围向量T指定。 4、;可详细了解某段时间的输入、输出情况。 2、脉冲响应: 脉冲函数在数学上的精确定义: 其拉氏变换为: 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式:①; ② ③ (二)分析系统稳定性 有以下三种方法: 1、利用pzmap绘制连续系统的零极点图; 2、利用tf2zp求出系统零极点; 3、利用roots求分母多项式的根来确定系统的极点 (三)系统的动态特性分析 Matlab提供了求取连续系统的单位阶跃响应函数step、单位脉冲响应函数impulse、零输入响应函数initial以及任意输入下的仿真函数lsim. 三、实验步骤 (一) 稳定性

已知系统的传递函数 2 32 21 () 6116 s s G s s s s ++ = +++, 1)绘制系统的零、极点图 2)求系统的极点 3)试问该系统的稳定性 num=[1 2 1];den=[1 6 11 6];G=tf(num,den); pzmap(G); p=roots(den) p = -3.0000 -2.0000 -1.0000 1)系统的零极点图 2)系统的极点 S1= -3.0000;s2=-2.0000;s3=-1.0000 3)由计算结果可知,该系统所有的极点均无正实部,故系统稳定。(二)阶跃响应 二阶系统 1)绘制系统的单位阶跃响应曲线

MatLab讲义

2011年数学中国国赛培训讲座 Matlab的基础及数学建模中的应用 周吕文:zhou.lv.wen@https://www.wendangku.net/doc/3415508280.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的线性系统的时域分析 院(系):电子科学与工程学院专业:电子科学与技术姓名:学号: 同组人员:实验时间:2013.11.15 评定成绩:审阅教师:

一、实验目的 1.观察学习控制系统的时域(阶跃、脉冲、斜坡)响应。 2.记录时域响应曲线,给出时域指标。 3.掌握时域响应分析的一般方法。 二、实验容 1、 二阶系统为10/( );计算系统的闭环根、阻尼比、无阻尼振荡频率并做记 录。计算实际测取的峰值大小Cmax (tp )、峰值时间tp 、过渡时间ts 并与理论值比较。 2、 试作出以下系统的阶跃响应,并比较与原系统响应曲线的差别与特点,做出相应的实验 分析结果。 (a ) H1(s )=(2s+1)/(2 210s s ++),有系统零点情况。 (b ) H2(s )=(20.5s +)/2 (210)s s ++,分子、分母多项式阶数相等。 (c ) H3(s )=s/2 (210)s s ++,分子多项式零次项系数为零。 3、 已知单位反馈开环系统传递函数 输入分别为r(t)=2t 和时,系统的响应曲线,分析稳态值与系统输入函 数的关系 三、实验原理分析和代码 实验1 实验要求计算系统的闭环根、阻尼比、无阻尼振荡频率。系统的闭环根利用Matlab 的解方程命令即可求出,根据阻尼比和无阻尼振荡频率的定义,对照表达式,就可以得到,也能利用Matlab 相应命令得到。 实际测取的峰值大小、峰值时间、过渡时间可以分别由Matlab 相关命令得到。理论的 峰值大小、峰值时间和过渡时间由课本上给出的公式 Cmax (tp )=1+π ξξ 2 1-- e , 21ζ ωπ ωπ-= = n d p t ,±2%误差宽度时的过渡时间n s t ζω4=分别计算出来。 Matlab 代码如下: 2 22)(t t t r ++=)5)(S 1S 1.0(100)(++=S G )5)(S 1S 1.0(50 )(++= S S G )1006()12(10)(2 2+++=S S S S S G

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实验 第6章习题解答

第6章控制系统的校正 本章主要讨论利用频率法对单输入-单输出的线性定常系统的综合和设计。在介绍控制系统校正的基本概念、控制系统的基本控制规律的基础上,介绍了各种串联校正装置(超前校正装置、滞后校正装置、滞后-超前校正装置)的特性及按分析进行相应设计的基本步骤和方法;还介绍了期望设计法的基本概念、常见的期望特性和设计步骤;另外还介绍了根轨迹法的串联校正和反馈校正的基本概念和方法;最后介绍了利用MATLAB进行控制系统校正。 教材习题同步解析 试分别说明系统的固有频率特性与系统期望频率特性的概念。 答:系统本身固有元件所具有的频率特性称为固有频率特性。设计者希望系统所能达到的频率特性称为系统期望频率特性。 试比较串联校正和反馈校正的优缺点。 答:a、校正装置和未校正系统的前向通道环节相串联,这种叫串联校正,串联校正是最常用的设计方法,设计与实现比较简单,通常将串联装置安置在前向通道的前端。 b、并联校正也叫反馈校正,它是和前向通道的部分环节按反馈方式连接构成局部反馈回路,设计相对较为复杂。并联校正一般不需要加放大器,它可以抑制系统的参数波动及非线性因素对系统性能的影。 PD控制为什么又称为超前校正?串联PD控制器进行校正为什么能提高系统的快速性和稳定性? 答:加入PD控制相当于在系统中加入一个相位超前的串联校正装置,使之在穿越频率处有较大的相位超前角。因此,PD控制称为超前控制。PD控制的传递函数为G s Kp sτ =+,由比例控制和微分控制组合而成。增大比例系数Kp,可以展宽系统的()(1) 通频带,提高系统的快速性。微分控制反映信号的变化率的预报作用,在偏差信号变化前给出校正信号,防止系统过大地偏离期望值和出现剧烈振荡倾向,有效地增强系统的相对稳定性。 PI控制为什么又称为滞后校正?串联PI控制器进行校正为什么能提高系统的稳态性能?如何减小它对系统稳定性的影响? 答:PI控制在低频段产生较大的相位滞后,所以滞后校正。PI控制的比例部分可以提高系统的无差度,改善系统的稳态性能。在串入系统后应使其转折频率在系统幅值穿越频率

自控MATLAB仿真实验实验指导书

自动控制原理MATLAB仿真实验实验指导书

2013年09月

实验一 控制系统数学模型 一、实验目的 1、 掌握控制系统数学模型——传递函数的求取方法; 2、 利用MATLAB 命令求取控制系统传递函数。 二、基础知识及MATLAB 函数 在MA TLAB 命令窗口上,以命令的方式建立系统的传递函数。在MA TLAB 下,系统的数学模型有3种描述方式,此实验用多项式模型。 (1)多项式模型: 线性定常系统的数学模型传递函数G(s)一般可以表示成: m n a s a s a s a b s b s b s b s R s C s G n n n n m m m m ≥+++++++==----,......)() ()(0 11 10111 其中分子分母多项式中的a n 与b m 均为常系数。 MATLAB 语言描述: 构造分子多项式:num=[b m ,b m-1,…,b 1,b 0];或num=[b m b m-1 … b 1 b 0] 构造分母多项式:den=[a n ,a n-1,…,a 1,a 0];或den=[a n a n-1 … a 1 a 0] 构造并显示传递函数:printsys(num,den); 其中num 与den 是习惯用法,也可用其它变量名代替,但在显示时会出现num/den ,这是通用输出显示格式,与输入变量名称无关。 例1-1: >>num=[1 12 44 48]; >>den=[1 16 86 176 105]; >>printsys(num,den) 显示: num/den = s^3 + 12 s^2 + 44 s + 48 ----------------------------------- s^4 + 16 s^3 + 86 s^2 + 176 s + 105 例1-2:系统开环传递函数为 ) 106)(2() 1(5)(22++++= s s s s s s G 写出多项式模型。 >>n=conv([5],[1 1]); >>d=conv([1 0 0],conv([1 2],[1 6 10])); >>printsys(n,d) 显示: num/den = 5 s + 5 ----------------------------- s^5 + 8 s^4 + 22 s^3 + 20 s^2 (2)模型的连接

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的控制系统频域及根轨迹分析 二、实验目的: (1)、了解频率特性的测试原理及方法; (2)、理解如何用MATLAB对根轨迹和频率特性进行仿真和分析; (3)、掌握控制系统的根轨迹和频率特性两大分析和设计方法。 三、实验要求: (1)、观察给定传递函数的根轨迹图和频率特性曲线; (2)、分析同一传递函数形式,当K值不同时,系统闭环极点和单位阶跃响应的变化情况;(3)、K值的大小对系统的稳定性和稳态误差的影响; (4)、分析增加系统开环零点或极点对系统的根轨迹和性能的影响。 四、实验内容及步骤 (1)、实验指导书:实验四 (1)、“rlocus”命令来计算及绘制根轨迹。会出根轨迹后,可以交互地使用“rlocfind”命令来确定点击鼠标所选择的根轨迹上任意点所对应的K值,K值所对应的所有闭环极点值也可以使用形如“[K, PCL] = rlocfind(G1)”命令来显示。 (2)、波特图:bode(G1, omga) 另外,bode图还可以通过下列指令得出相位和裕角: [mag,phase,w] = bode(sys) (3)、奈奎斯特图:nuquist(G, omega) (2)课本:例4-1、4-2、4-7 五实验报告要求 (1)、实验指导书:实验四

思考题 请绘制下述传递函数的bode图和nyquist图。 1. 根据实验所测数据分别作出相应的幅频和相频特性曲线; 2. 将思考题的解题过程(含源程序)写在实验报告中。 幅频特性曲线相频特性曲线 Gs = zpk([10], [-5; -16; 9], 200) subplot(1, 2, 1) bode(Gs) grid subplot(1, 2, 2) nyquist(Gs) grid (2)课本:例4-1、4-2、4-7

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仿真实验报告

实验一 MATLAB 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些 2、 如何判断系统稳定性 3、 系统的动态性能指标有哪些 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为: ) ()()()(1 )(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,(); ,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

自控实验指导书--MATLAB--2013

自动控制原理MATLAB仿真实验实验指导书 2013年09月

实验一 控制系统数学模型 一、实验目的 1、 掌握控制系统数学模型——传递函数的求取方法; 2、 利用MATLAB 命令求取控制系统传递函数。 二、基础知识及MATLAB 函数 在MA TLAB 命令窗口上,以命令的方式建立系统的传递函数。在MA TLAB 下,系统的数学模型有3种描述方式,此实验用多项式模型。 (1)多项式模型: 线性定常系统的数学模型传递函数G(s)一般可以表示成: m n a s a s a s a b s b s b s b s R s C s G n n n n m m m m ≥+++++++==----,......)() ()(0 1110111 其中分子分母多项式中的a n 与b m 均为常系数。 MATLAB 语言描述: 构造分子多项式:num=[b m ,b m-1,…,b 1,b 0];或num=[b m b m-1 … b 1 b 0] 构造分母多项式:den=[a n ,a n-1,…,a 1,a 0];或den=[a n a n-1 … a 1 a 0] 构造并显示传递函数:printsys(num,den); 其中num 与den 是习惯用法,也可用其它变量名代替,但在显示时会出现num/den ,这是通用输出显示格式,与输入变量名称无关。 例1-1: >>num=[1 12 44 48]; >>den=[1 16 86 176 105]; >>printsys(num,den) 显示: num/den = s^3 + 12 s^2 + 44 s + 48 ----------------------------------- s^4 + 16 s^3 + 86 s^2 + 176 s + 105 例1-2:系统开环传递函数为 ) 106)(2() 1(5)(22++++= s s s s s s G 写出多项式模型。 >>n=conv([5],[1 1]); >>d=conv([1 0 0],conv([1 2],[1 6 10])); >>printsys(n,d) 显示: num/den = 5 s + 5 ----------------------------- s^5 + 8 s^4 + 22 s^3 + 20 s^2 (2)模型的连接

自动控制Matlab实验

二阶系统的matlab 性能分析 一、实验目的 1、研究二阶系统的两个重要参数阻尼比ξ和自然振荡频率n ω对系统动态性能的影响; 2、比较比例微分控制的二阶系统和典型二阶系统的性能; 3、比较输出量速度反馈控制的二阶系统和典型二阶系统的性能。 二、实验任务 1、典型二阶系统 二阶系统的传递函数为()s Φ=222 2n n n s s ωξωω++。 (1)令n ω=10不变,ξ取不同值:1ξ=0,2ξ、3ξ(01ξ<<),4ξ=1,5ξ>1,观察其单位阶跃响应曲线变化情况; (2)令ξ=0不变,n ω取不同值,观察其单位阶跃响应曲线变化情况; (3)令ξ=0.2不变,n ω取不同值,观察其单位阶跃响应曲线变化情况,并计算超调量%Mp 和s t ; (4)令n ω=10不变,ξ取不同值(01ξ<<),观察其单位阶跃响应曲线变化情况,并计算超调量%Mp 和s t 。 2、比例微分控制的二阶系统 比例微分控制的二阶系统的结构图如图2-1。 图2-1 比例微分控制的二阶系统的结构图 系统中加入比例微分控制,使系统阻尼比增加,并增加一个闭环零点,可以通过仿

真比较典型二阶系统和比例微分控制的二阶系统的单位阶跃响应的性能指标。 上图所示的控制系统,令 225 (2)(2) n n s s s s ω ξω = ++ ,0.1 d T=,其中5,0.2 n ωξ ==,从 Simulink图形库浏览器中拖曳Step(阶跃输入)、Sum(求和模块)、Pole-Zero(零极点)模块、Scope(示波器)模块到仿真操作画面,连接成仿真框图如图2-2所示。图中Pole-Zero(零极点)模块建立() G s。 图2-2 典型二阶系统和比例微分控制的二阶系统比较仿真框图 3、输出量速度反馈的二阶系统 输出量速度反馈的二阶系统的结构图如图2-3。 图2-3 输出量速度反馈的二阶系统的结构图 系统中加入输出量的速度反馈控制,使系统阻尼比增加,可以通过仿真比较典型二阶系统和输出量速度反馈控制的二阶系统的单位阶跃响应的性能指标。 图2-3所示的控制系统,令 225 (2)(2) n n s s s s ω ξω = ++ ,0.1 f K=,其中5,0.2 n ωξ ==, 建立仿真框图如图2-4所示。图中 0.11 0.11 0.0011 s s s + ≈+ + 。

自动控制MATLAB实验

实验一 MATLAB 的基本应用 1、试验目的 熟悉matlab 的基本知识,会利用其与控制系统有关的函数分析和设计控制系统。 2、实验内容 (1)系统模型如下所示,判断系统的稳定性,以及系统是否为最小相位系统。 3 2 6 5 4 3 2 3164128 ()1411052814942117112s s s G s s s s s s s +++= ++++++ 源程序:%1 num=[3,16,41,28]; den=[1,14,110,528,1494,2117,112]; subplot(211) nyquist(num,den) subplot(212) pzmap(num,den) 实验结果: 结果分析:由根轨迹图知,系统稳定,由零极点图知,系统是最小相位系统。

(2)已知某闭环系统的传递函数为:25 1096.116.025 10)(2 3 ++++= s s s s s G ,求其单位阶跃响应曲 线,单位脉冲响应曲线,以及输入信号为()1r t t =+的响应曲线。 源程序:%2 num=[10,25]; den=[0.16,1.96,10,25]; subplot(3,1,1) impulse(num,den,'r') title('Impulse Response'); subplot(3,1,2) step(num,den) title('Step Response'); t=[0:0.01:2] u=1+t; subplot(3,1,3) lsim(num,den,u,t) 试验结果: (3) 系统结构图如下所示,画出nyquist 频率曲线和伯德图,判断系统的稳定性。 R(s) C(s)

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 及仿真实验(控制系统的时域分析) 一、实验目的 学习利用MATLAB 进行控制系统时域分析,包括典型响应、判断系统稳定性和分析系统的动态特性; 二、预习要点 1、 系统的典型响应有哪些? 2、 如何判断系统稳定性? 3、 系统的动态性能指标有哪些? 三、实验方法 (一) 四种典型响应 1、 阶跃响应: 阶跃响应常用格式: 1、)(sys step ;其中sys 可以为连续系统,也可为离散系统。 2、),(Tn sys step ;表示时间范围0---Tn 。 3、),(T sys step ;表示时间范围向量T 指定。 4、),(T sys step Y =;可详细了解某段时间的输入、输出情况。 2、 脉冲响应: 脉冲函数在数学上的精确定义:0 ,0)(1)(0 ?==?∞ t x f dx x f 其拉氏变换为:) ()()()(1)(s G s f s G s Y s f === 所以脉冲响应即为传函的反拉氏变换。 脉冲响应函数常用格式: ① )(sys impulse ; ② ); ,();,(T sys impulse Tn sys impulse ③ ),(T sys impulse Y = (二) 分析系统稳定性 有以下三种方法: 1、 利用pzmap 绘制连续系统的零极点图; 2、 利用tf2zp 求出系统零极点; 3、 利用roots 求分母多项式的根来确定系统的极点 (三) 系统的动态特性分析 Matlab 提供了求取连续系统的单位阶跃响应函数step 、单位脉冲响应函数impulse 、零输入响应函数initial 以及任意输入下的仿真函数lsim.

《控制系统MATLAB仿真》实验讲义88

《自动控制原理实验》 目录 第一部分实验箱的使用 第二部分经典控制实验 第一章基本实验 实验一典型环节及其阶跃响应 实验二二阶系统阶跃响应 实验三控制系统的稳定性分析 实验四控制系统的频率特性 实验五连续控制系统的串联校正 实验六数字PID控制实验 第二章综合实验 第三部现代控制理论实验 第一章基本实验 第二章综合实验

实验一 典型环节及其阶跃响应 预习要求: 1、复习运算放大器的工作原理;了解采用A μ741运算放大器构成各种运算电路的方法; 2、了解比例控制、微分控制、积分控制的物理意义。 一、实验目的 1、学习自动控制系统典型环节的电模拟方法,了解电路参数对环节特性的影响。 2、学习典型环节阶跃响应的测量方法; 3、学会根据阶跃响应曲线计算确定典型环节的传递函数。 二、实验内容 1、比例环节 电路模拟: 图1-1 传递函数: 2211 ()()()U s R G s U s R ==- 2、惯性环节 电路模拟: 图1-2 传递函数: 22112()/()()11 U s R R K G s U s Ts R Cs = =-=- ++ 3、积分环节 电路模拟: A/D1 D/A1 A/D1

图1-3 传递函数: 21()11 ()()U s G s U s Ts RCs = =-=- 4、微分环节 电路模拟: 图1-4 传递函数: 211() ()() U s G s s RC s U s τ= =-=- 5、比例微分 电路模拟: 图1-5 传递函数: 222111 ()()(1)(1)()U s R G s K s R C s U s R τ= =-+=-+ 6、比例积分 电路模拟: 图1-6 A/D1 2 R D/A1 A/D1 A/D1 A/D1 C

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.历史记录: 显示所有在命令窗口输入的执行过的命令,清除历史的方法有两种

相关文档