当前位置:文档之家› 实验01_熟悉Matlab环境及基本操作

实验01_熟悉Matlab环境及基本操作

实验01_熟悉Matlab环境及基本操作
实验01_熟悉Matlab环境及基本操作

贵州师范大学数学学院数学实验

实验1 熟悉Matlab环境及基本操作

实验目的:

1.熟悉Matlab环境,掌握Matlab的主要窗口及功能;

2.学会Matlab的帮助使用;

3.掌握向量、矩阵的定义、生成方法和基本运算;

4.掌握Matlab的基本符号运算;

5.掌握Matlab中的二维图形的绘制和控制。

实验内容:

1.启动Matlab,说明主窗口、命令窗口、当前目录窗口、工作空间窗口、历史窗口、图形窗口、M文件编辑器窗口的功能。

2.实例操作Matlab的帮助使用。

3.实例操作向量、矩阵的定义、生成方法和基本运算。

4.实例操作Matlab的基本符号运算。

5.实例操作Matlab中的二维图形绘制和控制。

实验仪器与软件:

1.CPU主频在2GHz以上,内存在512Mb以上的PC;

2.Matlab 2010a及以上版本。

实验讲评:

实验成绩:

评阅教师:

2011年月日

班级:数应(2)姓名:李锦标学号:2010051353 - 1 -

实验1 熟悉Matlab环境及基本操作

一、Matlab环境及主要窗口的功能

运行Matlab安装目录下的matlab.exe文件可启动Matlab环境,其默认布局如下图:

其中

1、主窗口的功能是:包含MATLAB的其他窗口,不进行任何计算任务的操作,只用来进行一些整体的环境参数设臵。它主要包含6个下拉菜单和10个按钮控件.

2.命令窗口的功能是:在命令窗口中,“>>”为运算提示符,在运算提示符后面可以输入程序语句,按回车后可以得到相应的执行结果。

3、历史窗口:历史窗口显示命令窗口中所有执行过的命令。利用该窗口,一方面可以查看曾经执行过的命令;另一方面,可以重复利用原来输入的命令行。可以从命令历史窗口中直接通过双击某个命令行来执行该命令行,也可以通过拖拉或复制操作将命令行复制到命令窗口后再回车执行。

4、当前目录窗口:显示当前目录下所有文件的文件名、文件类型和最后修改的时间,同时还提供搜索功能。在该窗口下,还可以改变当前目录。

5、发行说明窗口:该窗口显示MATLAB总文件包和已安装的工具箱的帮助、演示、GUI工具和产品主页等4个方面的内容。

6、工作空间窗口:该窗口显示所有目前内存中的MATLAB变量的变量名、数学结构、字节数以及类型,不同的变量类型分别对应不同的变量名图标。对于数组变量,可双击其图标,显示数组编辑器,相应变量的行和列上的数据均显示在电子表格中,用户可以进行编辑。

7、M文件编译器窗口:如果要解决一个具体的问题,要求执行的命令数比较多,或要改变变量的值后重新执行一系列的命令时,在命令窗口的编辑区中键入命令,逐行执行,就非常麻烦。出现以上情况我们就可以进入程序编辑器编写M文件。

8、图形窗口:利用图形窗口菜单和工具栏中的选项,可以对图形进行线型、颜色、标记三维视图、光照和坐标轴等的设臵。

9、GUI(Graphacal User Interface)窗口:能够快速、方便地实现面向对象编程,生c成操作友好的图形用户界面程序。

二、Matlab的帮助使用

Matlab提供的联机帮助系统使用户在没有任何资料的情况下就能掌握它的使用和基本操作,作为Matlab的用户应熟练掌握其联机帮助系统的使用,下面是Matlab联机帮助系统的使用方法。

1、単击主窗口的绿色问号按钮即可进入帮助系统寻求帮助。

2、在命令窗口输入help,按回车键即可寻求帮助。

3、lookfor命令,主要是返回包含指定关键词的那些项。

三、向量的定义、生成和基本运算

1. 向量的生成

(1)逐个元素直接输入

向量元素需要有“[ ]”括起来,元素之间可以用空格、逗号或分号分隔。用空格和逗号分隔生成行向量,用分号分隔生成列向量。例:

a=[1 2 3 6 8 7 5.3]

b=[4;5;8;0;6]

(2)利用冒号表达式生成

通过设臵“步长(step)”,生成一维行向量,通用格式为:x=x0:step:x n。x0表示向量的首元素值,x n表示尾元素数值限。step(步长)表示从第个元素开始,每一个元素与前一个元素的差值. 当step=1时,可省略此项的输入,系统默认为1,在这种情况下直接写成x=x0:x n即可。例:

x=0:3:9

y=1:6

z=1:0.5:4

(3)定数线性采样生成

设定总点数n下,均匀采样生成一维行向量。通用格式为x=linspace(a,b,n)。a,b分别是生成向量的第一个和最后一个元素,n是采样总点数。该指令生成的数组与a:(a-b)/(n-1):b生成的数组等价。当n缺省时,自动生成100维的行向量。例:

clear

x=linspace(-4,4,11)

y=-4:8/10:4

z=linspace(-5,3)

(4)定数对数采样生成向量

设定总点数n下,经“常用对数”均匀采样生成一维行向量。通用格式为

x=logspace(a,b,n) 。生成数组的第一个元素值为10a,最后一个元素值为

10b,n为采样总点数,当n缺省时,自动生成50维的行向量。例:clear %清除工作空间中的所有变量.

x=logspace(1,4,4)

y=1:(4-1)/(4-1):5

xx=10.^y

z=logspace(1,4)

2. 向量元素的引用

格式为:向量名(下标范围或元素所满足的条件)。例:

clear

rand('state',0) %把均匀分布为随机发生器臵为初始状态

x=rand(1,5) %产生(2×5)的均匀分布随机数组

x(2) %引用数组x的第二个元素

y=x([1 2 5]) %引用数组x的第一、二、五个元素

z=x(1:2) %引用数组x的前二个元素

w=x(2:end) %引用数组x的从第三个元素以后的元素

v=x(3:-1:1) %由数组x的前3个元素倒排构成的了数组

u=x(find(x>0.5)) %数组x中大于0.5的元素构成的子数组

t=x([1 2 3 4 4 3 2 1]) %重复引用数组x中的元素构成的数组

3. 向量与标量、向量与向量的运算

(1)四则运算(+、-、 * 、 /(右除)、 \ 、 .*、 ./ 、 .\)

标量a与向量x进行四则运算是a分别与x中的每个元素进行四则运算并生一个与x等长的向量。等长的两个向量才能进行四则运算,向量x与y进行四则运算是这两个向量的对应元素分别进行四则运算并生成一个与它们等长的向量。例如:

clc

x=[1 2 3 6 -4 5]

y=2*x-2

z=x/2+1

w=2\x %2\x=2-1*x,不能进行"2/x"运算

u=x+y

v=x.*y

t=x./y

s=x.\y

(2)幂运算(.^)

向量x与标量a的幂运算是对x的每一个元素施行幂运算,向量x与向量y 的幂运算是元素对元素的幂运算。例如:

clc

x=[1 2 3 6 -4 5]

y=x.^2

y1=2.^x

z=x.^[1 2 2 0 -1 0]

(3)指数运算、对数运算和开方运算

在MATLAB中,数组的运算实质上是数组内部每个元素的运算,因此,数组的指数运算(exp)、对数运算(log)与开方运算(sqrt)等与标量运算完全一样。例如:

clear

x=[1 2 3 6 4 5]

y=exp(x) %施行的是以e为底的指数运算

z=log(x) %施行的是以e为底的对数运算

v=sqrt(x)

u=sin(x)

四、矩阵的定义、生成和基本运算

1. 矩阵的创建

(1)逐个元素直接输入把矩阵元素需用“[ ]”括起来,同行元素之间用空格或逗号分隔,行与行之间用分号或回车符分隔。矩阵元素可以为运算表达式,没有任何元素的矩阵称为空矩阵。例如:

A=[1 2 3;3 2 1;4 5 6]

B=[sin(pi/3),cos(pi/4);log(9),tanh(6)]

T=[]

(2)编写M文件创建大矩阵

针对于大型的矩阵,可通过编写脚本式M文件,然后运行该文件来创建。例如:编写一名为Example11.m的M文件,内容如下。

%Example11.m

%编写一M文件创建矩阵的示例文件。

exm=[123 346 224 89 36;0 97 665 86 45;29 50 5 124 36;14 38 54 259 178;459 54 149 245 231]

(3)通过函数创建特殊矩阵

%Example11.m

%编写一M文件,通过函数创建特殊矩阵的示例文件。

%由函数zeros创建全0矩阵。

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

A1=zeros(N) %生成N×N阶全0阵。

B1=zeros(M,N) %生成M×N阶全0阵。

C1=zeros(size(A)) %生成与A同阶的全0阵。

%通过这种方式可创建全大型稀疏矩阵。即先创始全0矩阵,再通过矩阵编辑器给非0元素赋值。

%由函数ones创建全1矩阵。

A2=ones(N) %生成N×N阶全1阵。

B2=ones(M,N) %生成M×N阶全1阵。

C2=ones(size(A)) %生成与A同阶的全1阵。

%由函数eye创建单位矩阵。

A2=eye(N) %生成N×N阶单位矩阵。

B2=eye(M,N) %生成M×N阶单位矩阵。

C2=eye(size(A)) %生成与A同阶单位矩阵。

%由函数rand或randn创建随机矩阵。

A3=rand(N) %生成N×N阶均匀分布的随机阵,元素值在(0.0,1.0)区间内。

B3=rand(M,N) %生成M×N阶均匀分布的随机阵。

C3=rand(size(A)) %生成与A同阶阶均匀分布的随机阵。

H=hilb(N) %生成N×N阶Hilbert矩阵。

2. 矩阵元素的引用

(1)相对位臵引用格式:变量名(行标,列标)

(2)绝对位臵引用格式:变量名(绝对位臵索引)

例:

clear

rand('state',0) %把均匀分布伪随机发生器臵为初始状态

A=rand(5,4) %产生(4×3)的均匀分布随机数组

A(4,3) %引用矩阵A的第三行第二列的元素

A(4) %引用矩阵A的第五个元素

3. 矩阵元素的抽取

(1)抽取行

clear

rand('state',0) %把均匀分布伪随机发生器臵为初始状态

A=rand(4,3) %产生(4×3)的均匀分布随机数组

A(3,:) %抽取矩阵A的第三行

A([1 3],:) %抽取矩阵A的第一行和第三行

B=A([3 1],:) %抽取矩阵A的第三行和第一行赋值给B

C=A(3:end,:) %抽取矩阵A的第三行至最后一行赋值给B

(2)抽取列

clear

rand('state',0) %把均匀分布伪随机发生器臵为初始状态

A=rand(4,3) %产生(4×3)的均匀分布随机数组

A(:,3) %抽取矩阵A的第三列

A(:,[1 3]) %抽取矩阵A的第一列和第三列

B=A(:,[3 1]) %抽取矩阵A的第三列和第一列赋值给B

C=A(:,3:end) %抽取矩阵A的第三行至最后一行赋值给B

(3)抽取块

clear

rand('state',0) %把均匀分布伪随机发生器臵为初始状态

A=rand(4,3) %产生(4×3)的均匀分布随机数组

B=A([1 2],[2 3]) %抽取矩阵A的第一、二行与第二、三列交叉的元素赋值给B

(4)抽取矩阵对角线上的元素

clear

rand('state',0) %把均匀分布伪随机发生器臵为初始状态

A=rand(5) %产生(4×4)的均匀分布随机数组

V=diag(A) %抽取矩阵A的主对角线上的元素赋值给向量V

D=diag(V) %以向量V为对角线元素生成对角矩阵

D1=diag(V,1)

D2=diag(V,-1)

U=diag(A,1) %抽取矩阵A的主对角线上方第一条对角线的元素赋值给向量U L=diag(A,-1) %抽取矩阵A的主对角线下方第一条对角线的元素赋值给向量L

(5)抽取矩阵上三角部分和下三角部分

clear

rand('state',0) %把均匀分布伪随机发生器臵为初始状态

A=rand(4) %产生(4×4)的均匀分布随机数组

U=triu(A,1) %从矩阵A的主对角线上方第一条对角线开始抽取A的上三角部分

U=triu(A,-1) %从矩阵A的主对角线下方第一条对角线开始抽取A的上三角部分

L1=tril(A,1)

L2=tril(A,-1)

4. 矩阵的基本数学运算

(1)矩阵的四则运算(+ - * / \)与线性代数理论一致,其中,A\B=inv(A)*B=A^-1*B。

clear

A=[1 2 3 4;5 1 -4 7]

B=[-1 3;4 1;6 0;7 9]

C=A+B'

D=A*B

E=B/D

F=D\A

(2)矩阵与常数间的运算(+ - * / \ ^)同线性代数理论一致,需注注的是,当进行数除时,常数通常只能做除数。

clear

A=[1 2 3 4;5 1 -4 7]

C=A+2

D=A*2

E=A/2 %不能进行“2/A”的运算

F=2\A %不能进行“A\2”的运算

G=A([1 2],[1 2])^2

(3)矩阵的数组运算(.+ .- .* ./ .\ .^)是指同维数组间对应元素之间的加、减、乘、除和幂运算,其中“.+”和“ .-”分别与“+”和“-”相同,所以,“.+”和“ .-”一般不用。

clear

A=[1 2 3 4;5 1 -4 7]

B=A+2

C=A.*B

D=A./B

E=B.\A

F=A.^2

(4)矩阵的基本初等运算

clear

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

A(2,:)=A(2,:)*2 %2乘A的第二行

A(1,:)=A(1,:)+A(2,:) %2乘A的第二行,加到A的第一行

A([1 2],:)=A([2 1],:) %交换A的第一行和第二行

(5) 矩阵的逆运算

clear

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

B=inv(A)

(6) 矩阵的行列式运算

clear

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

B=det(A)

(7) 矩阵的指数运算

clear

A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9]

B=expm(A) %由Pade近似计算矩阵指数,也可以用函数expm1

%由Taylor级数计算矩阵指数用expm2

%由特征值法计算矩阵指数expm3

(8)矩阵的对数运算

clear

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

B=expm(A)

C=logm(B)

D1=logm(A)

D2=log(A)

(9)矩阵的开方运算

clear

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

B=A^2

C=sqrtm(B)

B1=sqrtm(A)

B2=sqrt(A)

(10)矩阵的其他基本函数运算可以在命令窗口中输入“help matfun”查询。

5. 矩阵的一些特殊操作

(1)变维方法:“:”和函数“reshape”。

reshape(A,M,N) %将已知矩阵变维成M×N阶矩阵

reshape(A,M,N,p,…) %将已知矩阵变维成M×N×P×…阶矩阵

clear

a=1:12;

A=reshape(a,3,4)

c=zeros(4,3);

c(:)=a(:) %按绝对位臵,逐个用a的元素值给c元素赋值,a和c的结构可以不一样,但总的元素个数要相等。

(2)矩阵的变向。

clear

a=1:12;

A=reshape(a,3,4)

k=3;dim=1;

A1=rot90(A) %将A逆时针方向旋转90o

A2=rot90(A,k) %将A逆时针方向旋转(90*k)o,k可为正值,也可为负值。

A3=fliplr(A) %将A左右翻转

A4=flipud(A) %将A上下翻转

A5=flipdim(A,dim) %dim的值为1或2,当dim=1时,对行翻转,dim=2时,对列翻转

(3)矩阵的扩展与收缩。

clear a=1:12;

A=reshape(a,3,4) B=eye(3,2) C=ones(2,6)

D=[A B;C] %利用小矩阵的组合来生成大矩阵

D(6:10,9:10)=4 %利用对矩阵标识块的赋值命令生成大矩阵 D(:,3:end)=[] %将矩阵标识块臵为空以收缩矩阵

五、Matlab 的基本符号运算 1. 多项式的表示 对于多项式

n n n n n a x a x a x a x P ++++=--1110)(

用行向量],,,[110n n a a a a P -= 表示,把多项式问题转化为向量问题。

2. 多项式的创建 ①直接输入系数向量

由于在MATLAB 中的多项式是以向量形式储存的,因此,直接输入多项式对应的向量,MATLAB 会自动将向量元素按降幂顺序分配给各项系数值,向量可以为行向量,也可以是列向量。例如:

输入多项式:x^3-5x^2+6*x-33 p=[1 -5 6 -33]; poly2sym(p)

%poly2sym 为符号工具箱中的函数,可以将多项式向量表示为符号形式。

(2)通过特征多项式创建

也就是从矩阵求其特征多项式获得。例如: A=[1 2 3;3 2 1;9 8 5] p=poly(A)

poly2sym(p)

%由特征多项式生成的多项式的首项系数一定是1,n 阶矩阵一般产生n 次多项式。

(3)由多项式的根创建多项式

root=[-5 -3+4i -3-4i]; p=poly(root) poly2sym(p)

3. 多项式运算 (1)求多项式的值

一般调用函数polyval进行计算,例如:

p=[1 -12 55 125];

b=[1 2;0 3];

polyval(p,b)

(2)求多项式的根

求多项式的根可以有两种方法,一种是直接调用函数roots求解多项式的所有根;另一种是通过建立多项式的伴随矩阵再求其特征值的方法得到多项式的所有根。两种方法求得的根是相等的。例如:

p=[1 -12 55 125]

roots(p)

P=compan(p)

eig(p)

3. 多项式的乘除法运算

多项式的乘法由函数conv来实现,除法则由函数deconv来实现,例如:

p=[2 -5 6 -1 9];

poly2sym(p)

d=[3 -90 -18];

poly2sym(d)

pd=conv(p,d)

poly2sym(pd)

p1=deconv(pd,d)

4. 多项式的微分

多项式的微分由函数polyder来实现,例如:

p=[2 -5 6 -1 9];

poly2sym(p)

Dp=polyder(p)

poly2sym(Dp)

5. 多项式拟合

多项式拟合的实现,一面可以由矩阵的除法求解超定方程来进行;另一方面可调用函数polyfit来实现,调用方法如下:

[p,s]=polyfit(X,Y,n)

其中,X、Y为拟合数据,n为拟合多项式的次,p为拟合多项式的系数向量,s为拟合多项式系数向量的结构信息,例如:

x=0:pi/20:pi/3;

y=sin(x);

p=polyfit(x,y,5)

x1=0:pi/30:pi*2;

y1=sin(x1);

y2=polyval(p,x1);

plot(x1,y1,'b-',x1,y2,'r*')

legend('原曲线','拟合曲线')

axis([0 7 -1.2 4])

由于拟合是在[0,π/3]上进行的,故所得曲线在此区间与原曲线拟合很好,而在区间外,两曲线差别就很大。

六、Matlab中的二维图形绘制和控制

1. 当plot函数仅有一个输入变量时

调用格式:plot(y)

(1)如果y为实向量,则以y的索引作为点的横坐标(也即是x轴)、以y的各元素作为点的纵坐标来绘制图形。

例1:x=1:8;

y=sin(x).*exp(x)

plot(y,'*');

例2:x=1:8;

y=cos(x).*exp(x)

plot(y,'*');

(2)如果y为复数向量,则将以该向量的实部作为点的横坐标、虚部作为点的纵坐标来绘制图形。但须注意,当输入变量不止一个时,plot函数将忽略变量的虚部而直接绘制各参数实部间的图形。例如:

clear;clc;

x=0:0.05:10*pi;

y=(cos(x)+i*sin(x)).*exp(-0.05*x)+0.01*x;

plot(y);

%同于plot(real(y),imag(y));

xlabel('Re(y)');ylabel('Im(y)');

%尝试命令:plot(x,y);

2. 当plot函数有两个输入变量时

调用格式:plot(x,y)

该方式在实际中最为常用,它将以第一个变量作为点的横坐标、第二变量作为点的纵坐标来绘制图形。例如:

clear;clc;

x=0:0.01:2*pi;

y=sin(x);

plot(x,y);

在使用该方式调用函数plot时,当两个输入变量x和y同为向量时,它们的维数必须相同,且必须同为行向量或列向量;当两个输入变量x和y是同阶的矩阵时,将

按矩阵的行或列进行操作,其中,y可以包含多个符合要求的向量,这时将在同一幅图中绘出所有图形。例如:

clear;

clc;

x=0:0.01:2*pi;

y=[sin(x'),cos(x'),];

plot(x',y); %同于plot([x',x'],y);

从图上可以看出,MATLAB已自动将一幅图中的不同曲线绘制成不同的颜色,以进行简单的区别。

3. 当plot函数有三个输入参数时

调用格式:plot(x,y,s)

该方式中的第三个参数s为图形显示属性的设臵项。它可以是图形颜色、形状等。常见的MATLAB语言中的图形设臵选项表

时,选项应臵于单引号内以表明为图形设臵属性,当多于一个选项时,各选项直接相连,不需要任何分隔符。例如:

clear;

clc;

x=0:0.1:3*pi;

y=sin(x);

z=cos(x);

plot(x,y,'--p',x,z,'-.r s');

1. 特殊坐标系的二维图形函数

(1)半对数坐标图

semilogx函数:对x轴按对数比例绘数据图,其他与plot函数类似。例如:y=0:0.1:1;

semilogx(y,'rv');

%令x轴为以10为底的对数比例(即横坐标轴按照相等的指数变化来增加,每个单位为10)、y轴为线性比例绘数据图(也即是与plot函数类似),当y为实数向量时,则绘制y的元素与它们的指数之间的数据图又如下。

x=1:0.1*pi:2*pi;

y=sin(x);

semilogx(x,y,'*');

semilogy函数:它与semilogx函数正好相反,它是对y轴按对数比例绘数据图。例如:

x=0:0.1:10;

semilogy(x,10.^x,'rd');

在很多工程问题中,通过数据进行对数转换可以更清晰地看出数据的某些特征,对数坐标系中描绘数据点曲线可以直观地表现对数转换。半对数曲线主要用于成对数或指数变化的数据的分析。如y=ln(t),在算术坐标系是曲线,而在半对数坐标系统中为一直线,这样便于对试验数据的分析研究。

(2)双对数坐标图

loglog函数:也就是对x轴和y轴都按对数比例绘数据图。例如:

x=logspace(-2,2);

loglog(x,exp(x),'rd');

grid on

(3)极坐标系下的二维图

ploar函数也可用于绘制极坐标系下的二维图形,调用格式如下:

polar(theta,rho,s) 其中,theta为弧度表示的角度向量,rho是相应的幅向量,s为图形属性设臵选项。例如:

x=0:0.01*pi:5*pi;

y=sin(x/2)+x;

polar(x,y,'-r');

(4)双纵坐标的二维图

在进行数值比较过程中经常会遇到双纵坐标(即双y轴坐标系)显示的要求,解决该问题,可调用plotyy函数。完整调用格式如下:

plotyy(x1,y1,x2,y2,fun1,fun2)

该命令将以fun1方式绘制(x1,y1),以fun2方式绘制(x2,y2)。其中,若缺省参数fun1和fun2时,以plot方式绘制图形,缺省参数fun2时,以fun1方式绘制图形(fun1可以为plot、semilogx、 semilogy等)。例如:

x=0:0.1*pi:2*pi;

y=sin(x);

z=exp(x);

plotyy(x,y,x,z,'plot','semilogy');

再如:

x=0:0.01:20;

y1=200*exp(-0.05*x).*sin(x);

y2=0.8*exp(-0.5*x).*sin(10*x);

plotyy(x,y1,x,y2,'plot');

2. 特殊二维图形函数

(1)条形图、水平条形图

bar(x,y) 在x中指定的位臵上绘y中每一元素的条形。例如:

%绘制钟形线。

x=-2.9:0.5:2.9;

bar(x,exp(-x.*x));

colormap hsv

barh函数与bar函数类似。例如:

%创建4个次级图形,显示不同条形变量的效果。

y=round(rand(5,3)*10);

subplot(2,2,1);

bar(y,'group');%'group'用于显示5组条形组,每个条形组中有3个垂直条形。

subplot(2,2,2);

bar(y,'stack');%为y中的每一行显示一个条形,条形高度为行中元素的和,每一个条形都用多种颜色表示,颜色对应于不同种类的元素并显示每行元素对总和的相对贡献。

subplot(2,2,3);

barh(y,'stack');

title 'Stack'

subplot(2,2,4);

bar(y,1.5);

title 'Width=1.5'

(2)面积图

面积图将向量(或矩阵)y中的元素显示为一条或多条曲线,并填充每条曲线以下的面积。当y为矩阵时,曲线堆栈,显示每个x区间内每行元素对曲线总高度的贡献。绘制面积图通过调用area函数实现,调用格式如下:

area(x,y,ymin)绘x的对应点处的y数据的图。如果x为一向量,则length(x)必须等于length(y),x必须是单调的。如果x为一矩阵,则size(x)必须等于size(y),且x的每一列必须是单调的。使用sort可以使向量或矩阵单调化。对于面积填充,ymin为指定方向上的下限,缺省参数ymin时,ymin默认为0。缺省x 时,绘y向量图或y矩阵每列的和,x自动根据length(y)(当y为向量时)或size(y,1)(当y为矩阵时)确定比例。例如:

%利用y中的值绘制堆栈面积图。

y=[1 5 3;3 2 7;1 5 3;2 6 1]

area(y);

grid on

colormap summer

(3)饼图

饼图显示某向量或矩阵中各元素所占的比例。pie函数和pie3函数分别创建二维饼图和三维饼图,pie函数的调用格式如下:

pie(x,explode) explode为与x对应的零或非零矩阵,非零值对应的扇区将从饼图中分离,所以,若 explode(i,j)非零,则x(i,j)对应扇区从中心分离(注意:explode必须与x有相同的大小)。缺省参数explode时,使用x中的数据绘制饼图,x中的每一个元素用饼图中的一个扇区表示。例如:

%设矩阵X的每一列包含五年内某指定产品的年销量。

X=[19.3 22.1 51.6;34.1 70.3 82.4;61.4 82.9 90.8;50.5 54.9 59.1;29.4 36.3 47.0]

x=sum(X)

explode=zeros(size(x));%将使用explode输入变量将饼图中贡献最大的一个扇区分离出来,该变量是一个包含零和非零值的向量。

[c,offset]=max(x);%找到扇区中贡献最大的一个,并将其对应explode元素设臵为1。

explode(offset)=1;

pie(x,explode);

(4)误差条图

误差条图显示数据的臵信区间或沿曲线的偏差,误差条图通过调用errorbar 函数来绘制,调用格式如下:

errorbar(Y,E)对Y绘图并在Y的每个元素处绘一误差条,误差条两端距离曲

线上下均E(i)长度。

errorbar(X,Y,E)绘X和Y的误差条图,误差条长度为2*E(i),其中X、Y和E 必须大小相同。当它们为向量时,每个误差条均由(X(i),Y(i))定义,曲线上点上下各E(i)误差条。当它们为矩阵时,每个误差条则由(X(i,j),Y(i,j))定义。

errorbar(X,Y,L,U)用由L(i)+U(i)指定了的误差条上下长度的绘制误差条图,其中,X、Y、L和U必须大小相同。当它们为向量时,每个误差条由(X(i),Y(i))定义,用L(i)定义下面的距离,用U(i)定义上面的距离。当它们为矩阵时,每个误差条由(X(i,j),Y(i,j))定义,用L(i,j)定义下面的距离,用U(i,j)定义上面的距离。

例如:

%绘对称的误差条图,误差条的长度为两倍标准误差。

X=0:pi/10:pi;

Y=sin(X);

E=std(Y)*ones(size(X));

errorbar(X,Y,E);

(5)直方图

在统计中,为了掌握数据的分布特征,需要绘制直方图,绘制直方图可通过调用函数hist函数来实现,调用格式如下:

n=hist(Y)将Y中的元素分到10个间隔相同的条形中,并返回每个条形中元素的个数。若Y是矩阵,则hist函数对每一列生成直方图。

n=hist(Y,x)其中为向量,返回Y的分布。如,若x为一5元素的向量,则hist函数将Y中的元素分配到五组条形中。

n=hist(Y,nbins)其中,nbins为标量,使用nbins组条形。

直方图的x轴反映Y中值的范围,直方图的y轴显示落到组中的元素个数。所以,在任意条形组中,y轴包含0到最大元素个数的范围。

直方图用添加阴影的图形对象创建,若希望改变图形的颜色,可以设臵阴影属性。

例如:

%创建服从高斯分布的数据的钟形直方图。

x=-2.9:0.5:2.9;

y=randn(10000,1);

hist(y,x);

%改变图形的颜色,使得条形为红色,条形的边为白色。

h=findobj(gca,'Type','patch');

set(h,'FaceColor','r','EdgeColor','w');

(6)等高线图

contour函数用于绘制等高线图,其调用格式如下:

contour(Z,N/V)或contour(X,Y,Z,N/V)

其中,输入变量Z必须为一数值矩阵,是该函数必须输入的变量,可以将它理解为x-y平面的高度。变量N/V为可选输入变量,参数N为所绘图形等高线的条数,即按指定数目绘制等高线;也可以选择输入参数V(这里,V为一数值向量),等高

线的条数将为向量V 的长度,并且等高线的值为对应向量的元素值。如果没有选择,系统将自动为矩阵Z 绘制等高线图,其等高线条数为预设值。如果按后一种方式调用,X 和Y 指定x 轴和y 轴的范围。当X 和Y 为矩阵时,它们必须与Z 具有相同的大小。例如:

%在范围-2

2y x xe z --=的等高线图。

[x,y]=meshgrid(-2:0.2:2,-2:0.2:3); z=x.*exp(-x.^2-y.^2); [c,h]=contour(x,y,z);

clabel(c,h);%作等高线图的等高标签。 colormap cool;

%对上面的函数和范围,设臵等高线水平为20,设臵默认颜色,生成等高线图。

contour(x,y,z,20); 如:

%使用interp2函数和contour 函数创建平滑化的等高线图。 z=magic(4);

[c,h]=contour(interp2(z,4)); clabel(c,h);

七、三维图形的绘制。

三维图形绘制中常用的基本绘图命令有函数plot3、网图函数、及着色图等。 (1)plot3函数

plot3函数是函数plot 函数的三维扩展,其调用格式如下:

plot3(x,y,z,s) 它与plot 函数相比,s 同样表示选项设臵,只是增加了一个维数而已,调用方法一样。

例1:绘制三维螺旋线。 x=0:pi/50:10*pi; y=sin(x); z=cos(x);

plot3(x,y,z);

例2:绘制参数为矩阵的三维图。

[x,y]=meshgrid(-2:0.1:2,-2:0.1:2);%生成网格点。 z=x.*exp(-x.^2-y.^2); plot3(x,y,z);

(2)网图函数

MATLAB 语言对于网格的处理方法是:将xy 平面按指定方式分隔成平面网格,然后根据程序中给定的方式计算第三维变量的值(即z 的值)与对应的xy 平面的坐标构成三维点元素,根据由此得到的(x ,z )和(y ,z )计算各平面的曲线,彼此相连就

构成了网格图。MATLAB语言提供了一系列的网图函数,如下表所示。

MATLAB

函数meshgrid

方式划分成平面网格,该平面网格可以用来绘制三维曲面,具体调用格式如下:[X,Y]=meshgrid(x,y) 这里,x和y为给定的向量,一方面可以用来定义网格划分区域;另一方面也可以用来定义网格划分方法。矩阵X和Y则是网格划分后的数据矩阵,如例2所示。

函数mesh是用来绘制三维的网图,具体调用格式如下:

mesh(X,Y,Z,C)用于绘制四个矩阵变量的彩色网格面图形。观测点可由函数view定义,坐标轴可由axis函数定义,颜色由C设臵,也可由函数colormap实现。缺省参数C时,C=Z,即网图高度正比于图高。当X和Y为两个向量时,要求length(X)=n,length(Y)=m,且[m,n]=size(Z)。这种情况下,网格的顶点为(X(j),Y(i),Z(i,j))的三倍。

注意:X对应于Z的列,而Y对应于Z的行,mesh(Z)和mesh(Z,C)使用x=1:n及y=1:m。在此情况下,高度Z为单值函数。

例3:使用mesh函数绘制三维面图。

x=-8:0.5:8;

y=x';

a=ones(size(y))*x;

b=y*ones(size(x));

c=sqrt(a.^2+b.^2)+eps;

z=sin(c)./c;

mesh(z);

函数meshc与函数mesh的调用方法相同,只是该函数在mesh的作用之上又增加了contour函数的功能,即绘制相应的等高线。

例4:用meshc函数绘制三维面图。

[X,Y]=meshgrid([-4:0.5:4]);

Z=sqrt(X.^2+Y.^2);

meshc(Z);

函数meshz与函数mesh的调用方法也相同,不同的是该函数在mesh的作用之上又增加了屏蔽作用,即增加了边界面屏蔽。

例5:用meshz函数绘制三维面图。

[X,Y]=meshgrid([-4:0.5:4]);

Z=sqrt(X.^2+Y.^2);

meshz(Z);

matlab实验报告

数学实验报告 班级: 学号: 姓名: 实验序号:1 日期:年 月 日 实验名称:特殊函数与图形 ◆ 问题背景描述:绘图是数学中的一种重要手段,借助图形,可以使抽象的对象得到 明白直观的体现,如函数的性质等。同时,借助直观的图形,使初学者更容易接受新知识,激发学习兴趣。 ◆ 实验目的:本实验通过绘制一些特殊函数的图形,一方面展示这些函数的特点属性, 另一方面,就 Matlab 强大的作图功能作一个简单介绍。 实验原理与数学模型: 1、 球2222x y z R ++= ,x=Rsin φcos θ, y= Rsin φsin θ, z= cos φ, 0≤θ≤2π , 0≤φ≤π 环面 222222222()4(),(cos )cos ,x y z a r a x y x a r φθ+++-=+=- (cos )sin ,sin ,02,02y a r z r φθφφπθπ=-=≤≤≤≤ 2、 平面摆线:2 22 31150,(sin ),(1cos ),0233 x y x a t t y a t t π+-==-=-≤≤ 3、 空间螺线:(圆柱螺线)x=acost , y=asint , z=bt ;(圆锥螺线)22 cos ,sin ,x t t y t t z t === 4、 椭球面sin cos ,sin sin ,cos ,02,0x a y b z c φθφθφθπφπ===≤<≤≤ 双叶双曲面3 tan cos ,tan sin ,sec ,02,22 x a y b z c π φθφθφθπφπ===≤<- << 双曲抛物面2 sec ,tan 2 u x au y bu z θθ=== 实验所用软件及版本:mathematica(3.0) 主要内容(要点): 1、 作出下列三维图形(球、环面) 2、 作出下列的墨西哥帽子 3、 作出球面、椭球面、双叶双曲面,单叶双曲面的图形 4、 试画出田螺上的一根螺线 5、 作出如图的马鞍面

实验1熟悉matlab环境和基本操作

实验1 熟悉Matlb环境及基本操作 实验目的: 1.熟悉Matlab环境,掌握Matlab的主要窗口及功能; 2.学会Matlab的帮助使用; 3.掌握向量、矩阵的定义、生成方法和基本运算; 4.掌握Matlab的基本符号运算; 5.掌握Matlab中的二维图形的绘制和控制。 实验内容: 1.启动Matlab,说明主窗口、命令窗口、当前目录窗口、工作空间窗口、历史窗口、图形窗口、M文件编辑器窗口的功能。 2.实例操作Matlab的帮助使用。 3.实例操作向量、矩阵的定义、生成方法和基本运算。 4.实例操作Matlab的基本符号运算。 5.实例操作Matlab中的二维图形绘制和控制。 实验仪器与软件: 1.CPU主频在2GHz以上,内存在512Mb以上的PC; 2.Matlab 7及以上版本。 实验讲评: 实验成绩: 评阅教师: 年月日

实验1 熟悉Matlab环境及基本操作 一、Matlab环境及主要窗口的功能 运行Matlab安装目录下的matlab.exe文件可启动Matlab环境,其默认布局如下图: 其中, 1.主窗口的功能是:主窗口不能进行任何计算任务操作,只用来进行一些整体的环境参数设置,它主要对6个下拉菜单的各项和10个按钮逐一解脱。 2.命令窗口的功能是:对MATLAB搜索路径中的每一个M文件的注释区的第一行进行扫描,一旦发现此行中含有所查询的字符串,则将该函数名及第一行注释全部显示在屏幕上。 3. 历史窗口的功能是:历史窗口显示命令窗口中的所有执行过的命令,一方面可以查看曾经执行过的命令,另一方面也可以重复利用原来输入的命令行,可以从命令窗口中直接通过双击某个命令行来执行该命令,

MATLAB实验报告50059

实验一MATLAB操作基础 实验目的和要求: 1、熟悉MATLAB的操作环境及基本操作方法。 2、掌握MATLAB的搜索路径及设置方法。 3、熟悉MATLAB帮助信息的查阅方法 实验内容: 1、建立自己的工作目录,再设置自己的工作目录设置到MA TLAB搜索路径下,再试 验用help命令能否查询到自己的工作目录。 2、在MA TLAB的操作环境下验证课本;例1-1至例1-4,总结MATLAB的特点。 例1-1

例1-2 例1-3 例1-4

3、利用帮助功能查询inv、plot、max、round等函数的功能。 4、完成下列操作: (1)在matlab命令窗口输入以下命令: x=0:pi/10:2*pi; y=sin(x); (2)在工作空间窗口选择变量y,再在工作空间窗口选择回绘图菜单命令或在工具栏中单击绘图命令按钮,绘制变量y的图形,并分析图形的含义。

5、访问mathworks公司的主页,查询有关MATLAB的产品信息。 主要教学环节的组织: 教师讲授实验目的、开发环境界面、演示实验过程,然后同学上机练习。 思考题: 1、如何启动与退出MA TLAB集成环境? 启动: (1)在windows桌面,单击任务栏上的开始按钮,选择‘所有程序’菜单项,然后选择MA TLAB程序组中的MA TLABR2008b程序选项,即可启动 MATLAB系统。 (2)在MA TLAB的安装路径中找到MA TLAB系统启动程序matlab.exe,然后运行它。 (3)在桌面上建立快捷方式后。双击快捷方式图标,启动MA TLAB。 退出: (1)在MA TLAB主窗口file菜单中选择exitMATLAB命令。 (2)在MA TLAB命令窗口中输入exit或quit命令。 (3)单击MATLAB主窗口的关闭按钮。 2、简述MATLAB的主要功能。 MATLAB是一种应用于科学计算领域的数学软件,它主要包括数值计算和符 号计算功能、绘图功能、编程语言功能以及应用工具箱的扩展功能。 3、如果一个MATLAB命令包含的字符很多,需要分成多行输入,该如何处理?

实验二 Matlab程序设计基本方法1

实验二Matlab程序设计基本方法 覃照乘自092 电气工程学院 一、实验目的: 1、熟悉MATLAB 程序编辑与设计环境 2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 二、实验基本知识: ◆for循环结构 语法:for i=初值:增量:终值 语句1 …… 语句n end 说明:1.i=初值:终值,则增量为1。 2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。 ◆while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达 式的值为假,则程序执行end之后的语句。 2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位 置加break语句、以便程序能正常执行。(执行循环体的次数不确定; 每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下:

while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end ◆if-else-end分支结构 if 表达式1 语句1 else if 表达式2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。 2.else if表达式2与else为可选项,这两条语句可依据具体情况取舍。 3.注意:每一个if都对应一个end,即有几个if,记就应有几个end。 ◆switch-case结构 语法:switch表达式 case常量表达式1 语句组1 case常量表达式2 语句组2 …… otherwise 语句组n end

matlab实验二

实验2 MATLAB数值计算、符号运算功能 一、实验目的 1、掌握建立矩阵、矩阵分析与处理的方法。 2、掌握线性方程组的求解方法。 3、掌握数据统计和分析方法、多项式的常用运算。 4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。 5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。 二、预习要求 (1)复习4、5、6章所讲内容; (2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。 三、实验内容 1、已知 29618 20512 885 A -?? ?? =?? ?? - ?? ,求A的特征值及特征向量,并分析其数学意义。 >> A=[-29,6,18;20,5,12;-8,8,5]; >> [V,D]=eig(A) V = 0.7130 0.2803 0.2733 -0.6084 -0.7867 0.8725 0.3487 0.5501 0.4050 D = -25.3169 0 0 0 -10.5182 0 0 0 16.8351 V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。 >> A*V ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 >> V*D

ans = -18.0503 -2.9487 4.6007 15.4017 8.2743 14.6886 -8.8273 -5.7857 6.8190 经过计算,A*V=V*D 。 2、 不用rot90函数,实现方阵左旋90°或右旋90°的功能。例如,原矩阵为A ,A 左旋后得到B ,右旋后得到C 。 147102581136912A ????=??????,101112789456123B ??????=??????,321654987121110B ??????=?????? 提示:先将A 转置,再作上下翻转,则完成左旋90°;如将A 转置后作左右翻转,则完成右旋转90°,可用flipud 、fliplr 函数。 >> a=[1 4 7 10;2 5 8 11;3 6 9 12] a= 1 4 7 10 2 5 8 11 3 6 9 12 >> B=rot90(a) B = 10 11 12 7 8 9 4 5 6 1 2 3 >>C= rot90(s,3) C= 3 2 1 6 5 4 9 8 7 12 11 10

实验一 MATLAB基本操作及运算

实验一 MATLAB 基本操作及运算 一、 实验目的 二、 实验的设备及条件 三、 实验内容 1、 建立以下标量: 1) a=3 2) ,(j 为虚数单位) 3) c=3/2πj e 2、 建立以下向量: 1) Vb= 2.71382882????????-???? 2) Vc=[4 3.8 … -3.8 -4 ] (向量中的数值从4到-4,步长为-0.2) 3、 建立以下矩阵: 1) 3 333Ma ????=?????? Ma 为一个7×7的矩阵,其元素全为3. 2) 11191212921020100Mb ??????=??????

Mb 为一个10×10的矩阵. 3) 114525173238Mc ????=?????? 4、 使用题1中的变量计算下列等式的x,y,z 的值: 1) ((15)/6)111a x e --=+ 2) 2x π= 3) 3ln([()()]sin(/3))x b c b c a π=+-R ,其中R 表示复数实部。 5、 求解函数值22/(2.25)ct y e -=,其中c 取值见题1,t 的取值范围为题2中行 向量Vc 。 6、 使用题1和题3中所产生的标量和矩阵计算等式 1()()T Mx a Mc Mc Mc -=?? 其中*为矩阵所对应行列式的值,参考det 。 7、 函数的使用和矩阵的访问。 1) 计算矩阵Mb 每一列的和,结果应为行向量形式。 2) 计算整个矩阵Mb 的平均值。 3) 用向量[1 1…1] 替换Mb 的最上一行的值 4) 将矩阵Mb 的第2~5行,第3到9列的元素所构成的矩阵赋值给矩阵SubMb 。 5) 删除矩阵Mb 的第一行; 6) 使用函数rand 产生一个1×10的向量r ,并将r 中值小于0.5的元素设置为0。 8、 已知CellA (1, 1)=‘中国’,CellA (1,2)=‘北京’,CellA (2,1)是一个3乘3的单位阵,CellA (2, 2)=[1 2 3],试用MATLAB 创建一个2×2的细胞数组CellA 。 9、 已知结构数组student 中信息包含有姓名,学号,性别,年龄和班级,试用MATLAB 创建相应的结构数组student 。该数组包含有从自己学号开始连续5个同学的信息(如果学号在你后面的同学不足5个则往前排序),创建完成后查看自己的信息。

matlab实验报告

实验一小球做自由落体运动内容:一小球竖直方向做自由落体,并无损做往返运动。程序: theta=0:0.01:2*pi x=cos(theta) y=sin(theta) l=1 v=1 while l<10 for t=1:10 y=y+(-1)^l*v*t plot(x,y,[-1,1],[-56,2],'.') axis equal pause(0.1) end l=l+1 end 结果:

-50 -40 -30 -20 -10 收获:通过运用小球自由落体规律,及(-1)^n 来实现无损往 返运动! 实验二 旋转五角星 内容:一个五角星在圆内匀速旋转 程序:x=[2 2 2 2 2 2] y=[0 4/5*pi 8/5*pi 2/5*pi 6/5*pi 0] y1=2*sin(y) x1=2*cos(y) theta=0:4/5*pi:4*pi

x2=2*cos(theta) y2=2*sin(theta) plot(x,y,x1,y1,x2,y2) axis equal theta1=theta+pi/10 x2=2*cos(theta1) y2=2*sin(theta1) plot(x2,y2) axis equal theta=0:4/5*pi:4*pi for rot=pi/10:pi/10:2*pi x=2*cos(theta+rot) y=2*sin(theta+rot) plot(x,y) pause(0.1) end 结果:

-2 -1.5-1-0.500.51 1.52 -2-1.5-1-0.500.511.5 2 收获:通过theta1=theta+pi/10,我们可以实现五角星在圆内匀速 旋转! 实验三 转动的自行车 内容:一辆自行车在圆内匀速转动 程序:x=-4:0.08:4; y=sqrt(16-x.^2); theta1=-pi/2:0.01*pi:3*pi/2; x3=0.5*cos(theta1); y3=0.5*sin(theta1); theta=-pi/2+0.02*pi for k=1:100

MATLAB实验报告实验二

实验二 MATLAB矩阵及其运算 学号:3121003104 姓名:刘艳琳专业:电子信息工程1班日期:2014.9.20 一实验目的 1、掌握Matlab数据对象的特点以及数据的运算规则。 2、掌握Matlab中建立矩阵的方法以及矩阵处理的方法。 3、掌握Matlab分析的方法。 二实验环境 PC_Windows 7旗舰版、MATLAB 7.10 三实验内容 4、1. (1)新建一个.m文件,验证书本第15页例2-1; (2)用命令方式查看和保存代码中的所有变量;

(3)用命令方式删除所有变量; (4)用命令方式载入变量z。 2. 将x=[4/3 1.2345e-6]在以下格式符下输出:短格式、短格式e方式、长格式、长格式e方式、银行格式、十六进制格式、+格式。 短格式 短格式e 长格式

长格式e方式 银行格式 十六进制格式 3.计算下列表达式的值 (1)w=sqrt(2)*(1+0.34245*10^(-6)) (2)x=(2*pi*a+(b+c)/(pi+a*b*c)-exp(2))/(tan(b+c)+a) a=3.5;b=5;c=-9.8; (3)y=2*pi*a^2*((1-pi/4)*b-(0.8333-pi/4)*a) a=3.32;b=-7.9; (4)z=0.5*exp(2*t)*log(t+sqrt(1+t*t)) t=[2,1-3i;5,-0.65];

4. 已知A=[1 2 3 4 5 ;6 7 8 9 10;11 12 13 14 15;16 17 18 19 20],对其进行如下操作:(1)输出A在[ 7, 10]范围内的全部元素; (2)取出A的第2,4行和第1,3,5列; (3)对矩阵A变换成向量B,B=[1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20]; (4)删除A的第2,3,4行元素; (1) (2)

实验一 Matlab基本操作(2016)

实验一 MATLAB 基本操作 一、实验目的 1. 学习和掌握MA TLAB 的基本操作方法 2. 掌握命令窗口的使用 3. 熟悉MATLAB 的数据表示、基本运算 二、实验内容和要求 1. 实验内容 1) 练习MATLAB7.0或以上版本 2) 练习矩阵运算与数组运算 2. 实验要求 1) 每位学生独立完成,交实验报告 2) 禁止玩游戏! 三、实验主要软件平台 装有MATLAB7.0或以上的PC 机一台 四、实验方法、步骤及结果测试 1. 实验方法:上机练习。 2. 实验步骤: 1) 开启PC ,进入MA TLAB 。 2) 使用帮助命令,查找sqrt 函数的使用方法 答: help sqrt 3) 矩阵、数组运算 a) 已知 ??????????=987654321A ,???? ??????=963852741B ,求)2()(A B B A -?+ 答: A=[1, 2, 3; 4, 5, 6; 7, 8, 9]; B=[1, 4, 7; 2, 5, 8; 3, 6, 9]; (A+B)*(2*B-A) b) 已知?? ????-=33.1x ,??????=π24y ,求T xy ,y x T c) 已知??????????=987654321A ,???? ??????=300020001B ,求A/B, A\B. d) 已知???? ??????=987654321A ,求:(1) A 中第三列前两个元素;(2) A 中所有第二行元素;(3) A 中四个角上的元素;(4) 交换A 的第1、3列。(5) 交换A 的第1、2行。(6) 删除A 的第3列。

e) 已知[]321=x ,[]654=y ,求:y x *.,y x /.,y x \.,y x .^, 2.^x ,x .^2。 f) 给出x=1,2,…,7时,x x sin 的值。 3)常用的数学函数 a )随机产生一个3x3的矩阵A ,求:(1) A 每一行的最大、最小值,以及最大、最小值所在的列;(2) A 每一列的最大、最小值,以及最大、最小值所在的行;(3) 整个矩阵的最大、最小值;(4) 每行元素之和;(5) 每列元素之和;(6) 每行元素之积;(7) 每列元素之积。 b) 随机产生两个10个元素的向量x ,y 。(1) 求x 的平均值、标准方差。(2) 求x ,y 的相关系数。(3)对x 排序,并记录排序后元素在原向量中的位置。 4) 字符串操作函数 建立一个字符串向量(如‘ABc123d4e56Fg9’),然后对该向量做如下处理: (1) 取第1~5个字符组成的子字符串。 (2) 将字符串倒过来重新排列。 (3) 将字符串中的小写字母变成相应的大写字母,其余字符不变。 (4) 统计字符串中小写字母的个数。

参考答案Matlab实验报告

实验一 Matlab基础知识 一、实验目的: 1.熟悉启动和退出Matlab的方法。 2.熟悉Matlab命令窗口的组成。 3.掌握建立矩阵的方法。 4.掌握Matlab各种表达式的书写规则以及常用函数的使 用。 二、实验内容: 1.求[100,999]之间能被21整除的数的个数。(rem) 2.建立一个字符串向量,删除其中的大写字母。(find) 3.输入矩阵,并找出其中大于或等于5的元素。(find) 4.不采用循环的形式求出和式 63 1 2i i= ∑ 的数值解。(sum) 三、实验步骤: ●求[100,199]之间能被21整除的数的个数。(rem) 1.开始→程序→Matlab 2.输入命令: ?m=100:999; ?p=rem(m,21); ?q=sum(p==0) ans=43 ●建立一个字符串向量,删除其中的大写字母。(find) 1.输入命令:

?k=input('’,’s’); Eie48458DHUEI4778 ?f=find(k>=’A’&k<=’Z’); f=9 10 11 12 13 ?k(f)=[ ] K=eie484584778 ●输入矩阵,并找出其中大于或等于5的元素。(find) 1.输入命令: ?h=[4 8 10;3 6 9; 5 7 3]; ?[i,j]=find(h>=5) i=3 j=1 1 2 2 2 3 2 1 3 2 3 ●不采用循环的形式求出和式的数值解。(sum) 1.输入命令: ?w=1:63; ?q=sum(2.^w) q=1.8447e+019

实验二 Matlab 基本程序 一、 实验目的: 1. 熟悉Matlab 的环境与工作空间。 2. 熟悉M 文件与M 函数的编写与应用。 3. 熟悉Matlab 的控制语句。 4. 掌握if,switch,for 等语句的使用。 二、 实验内容: 1. 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 2. 编程完成,对输入的函数的百分制成绩进行等绩转换,90~100为优,80~89为良,70~79为中,60~69为及格。 3. 编写M 函数文件表示函数 ,并分别求x=12和56时的函数值。 4. 编程求分段函数 2226;03 56;0532 1;x x x x y x x x x x x x +-<≠=-+≤<≠≠-+且且及其它,并求输入x=[-5.0,-3.0,1.0,2.0,2.5,3.0,3.5]时的输出y 。 三、 实验步骤: 根据y=1+1/3+1/5+……+1/(2n-1),编程求:y<5时最大n 值以及对应的y 值。 1. 打开Matlab ,新建M 文件 2. 输入命令: 51022-+x

MATLAB实验二(修改)

实验二 信号的表示及其基本运算 一、实验目的 1、掌握连续信号及其MATLAB 实现方法; 2、掌握离散信号及其MA TLAB 实现方法 3、掌握离散信号的基本运算方法,以及MA TLAB 实现 4 熟悉应用MATLAB 实现求解系统响应的方法 4、了解离散傅里叶变换的MA TLAB 实现 5、了解IIR 数字滤波器设计 6、了解FIR 数字滤波器设计1 二、实验设备 计算机,Matlab 软件 三、实验内容 (一)、 连续信号及其MATLAB 实现 1、 单位冲激信号 ()0,0()1,0 t t t dt ε ε δδε-?=≠??=?>??? 例1.1:单位冲击信号的MATLAB 实现程序如下: t1=-4; t2=4; t0=0; dt=0.01; t=t1:dt:t2; n=length(t); x=zeros(1,n); x(1,(-t0-t1)/dt+1)=1/dt; stairs(t,x); axis([t1,t2,0,1.2/dt]); 2、 任意函数 ()()()f t f t d τδττ+∞ -∞ =-? 例1.2:用MA TLAB 画出如下表达式的脉冲序列 ()0.4(2)0.8(1) 1.2() 1.5(1) 1.0(2)0.7(3)f n n n n n n n δδδδδδ=-+-+++++++ 3 单位阶跃函数 1,0()0, t u t t ?≥?=?

t=-0.5:0.001:1; t0=0; u=stepfun(t,t0); plot(t,u) axis([-0.5 1 -0.2 1.2]) 4 斜坡函数 0()()g t B t t =- 例1.4:用MA TLAB 实现g(t)=3(t-1) clear all; t=0:0.01:3; B=3; t0=1; u=stepfun(t,t0); n=length(t); for i=1:n u(i)=B*u(i)*(t(i)-t0); end plot(t,u) axis([-0.2 3.1 -0.2 6.2]) 5 抽样信号 抽样信号Sa(t)=sin(t)/t 在MATLAB 中用 sinc 函数表示。 定义为 )/(sin )(πt c t Sa = t=-3*pi:pi/100:3*pi; ft=sinc(t/pi); plot(t,ft); grid on; axis([-10,10,-0.5,1.2]); %定义画图范围,横轴,纵轴 title('抽样信号') %定义图的标题名字 6 指数函数 ()at f t Ae = 例1.5:用MA TLAB 实现0.5()3t f t e = 7 正弦函数 2()cos( )t f t A T π?=+ 例1.6:用MA TLAB 实现正弦函数f(t)=3cos(10πt+1) 8 虚指数信号 例 虚指数信号 调用格式是f=exp((j*w)*t) t=0:0.01:15;

Matlab实验

MATLAB实验报告 学校:湖北文理学院 学院:物理与电子工程学院 专业:电子信息工程 学号: 2013128182 姓名:张冲 指导教师:宋立新

实验一 MATLAB环境的熟悉与基本运算 一、实验目的: 1.熟悉MATLAB开发环境 2.掌握矩阵、变量、表达式的各种基本运算 二、实验内容 1、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明, 学习使用指令eye(其它不会用的指令,依照此方法类推) 2、学习使用clc、clear,观察command window、command history和workspace 等窗口的变化结果。 3、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、 exerc2、exerc3……),学习使用MATLAB的基本运算符。 三、练习 1)help rand,然后随机生成一个2×6的数组,观察command window、 command history和workspace等窗口的变化结果。 2)学习使用clc、clear,了解其功能和作用。 3)用逻辑表达式求下列分段函数的值 4)求[100,999]之间能被21整除的数的个数。(提示:rem,sum的用法) 四、实验结果 1)

2)clc:清除命令窗口所有内容,数值不变;clear:初始化变量的值。3) 4)

实验二 MATLAB数值运算 一、实验目的 1、掌握矩阵的基本运算 2、掌握矩阵的数组运算 二、实验内容 1)输入C=1:2:20,则C(i)表示什么?其中i=1,2,3, (10) 2)输入A=[7 1 5;2 5 6;3 1 5],B=[1 1 1; 2 2 2; 3 3 3],在命令窗 口中执行下列表达式,掌握其含义: A(2, 3) A(:,2) A(3,:) A(:,1:2:3) A(:,3).*B(:,2) A(:,3)*B(2,:) A*B A.*B A^2 A.^2 B/A B./A 3)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2 行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有 元素。 4)两种运算指令形式和实质内涵的比较。设有3个二维数组A 2×4,B 2×4 ,C 2×2 , 写出所有由2个数组参与的合法的数组运算和矩阵指令。 5)学习使用表4列的常用函数(通过help方法) 6)学习使用表5数组操作函数。 7)生成一个3行3列的随机矩阵,并逆时针旋转90°,左右翻转,上下翻转。 8)已知a=[1 2 3],b=[4 5 6],求a.\b和a./ b 9)用reshape指令生成下列矩阵,并取出方框内的数组元素。 三、实验结果 1)C(i)表示C中的第i个的数值;

MATLAB环境熟悉及基本操作

实验一 MA TLAB 环境熟悉及基本操作 1. 命令窗口运行入门 1-1 求2 ))39(212(2 -*+的算术运算结果 1-2 简单矩阵A 的生成 1-3 绘制图形比较函数曲线5432x x x x 、、、,要求(一)四个曲线在一个图形文件窗口(二) 子图 2. 命令窗口常用的基本操作 1-4 若用户想计算51) 2sin(21+=πy ,51) 2cos(22+=πy 的值 1-5 变量的保存:save 和load 命令,将已生成的变量保存,名为×××,存入目录C :\my_dir 3. 系统的在线帮助 1-6 help sqrt/help syntax/help (回车) 1-7 lookfor line(查找与直线、线性问题有关的函数) 1-8 help 菜单 实验二 数组(矩阵)及其运算 2-1 用户不能清除的固定变量ans 、eps 、pi 、i 、j 、NaN 、Inf 等 如>>eps Ans=2.2204e-016 2-2 矩阵的创建 (1)>>a=[1 2 3;4 5 6;7 8 9] >>a=[1:2;4:6;7:9]; a1=1:6 (2)利用MA TLAB 内部函数产生矩阵 >>b=eye(3) >>c=ones(2,5) >>d=zeros(3,2) >>e=linspace(-3,6,10) %注意三个参数的含义 >>f=logspace(1,6,5) %注意三个参数的含义 >>R=rand(1,6) (3) 访问元素 >>aa=a(1,2)+a(2,3) >>bb=a(4)+a(8) >>a(end-2:end,2) %在下标中可以直接用end 表示这一维的最后一个元素 (4) 矩阵操作 >>A=[1,2,3;4,5,6;7,8,9] >>B=diag(A) >>C=diag(B) >>D=rot90(A) >>E=reshape(D,1,9) %注意这三个参数的含义 2-3 矩阵运算 (1)算术运算 + - * / \ ^ ‘

matlab实验报告

Matlab实验报告 实验二图像处理 一、实验目的 (1)通过应用MA TLAB语言编程实现对图像的处理,进一步熟悉MATLAB软件的编程及应用; (2)通过实验进一步掌握图像处理的基本技术和方法。 二、实验内容及代码 ㈠.应用MA TLAB语言编写显示一幅灰度图像、二值图像、索引图像及彩色图像的程序,并进行相互之间的转换 首先,在matlab页面中的current directory下打开存放图像的文件夹。 1.显示各种图像 ⑴显示彩色图像: ①代码:>> mousetif=imread('tif.TIF'); >> image(mousetif) 显示截图: ②代码:>> mousetif=imread('tif.TIF'); >> imshow(mousetif) 显示截图:

③代码:mousetif=imread('tif.TIF'); subimage(mousetif) 显示截图: 显示截图:

⑵显示二值图像 ①代码:>> I=imread('单色bmp.bmp'); >> imagesc(I,[0 2]) 显示截图: ②代码:>> I=imread('单色bmp.bmp');

>> imshow(I,2) 显示截图: ③代码:>> I=imread('单色bmp.bmp'); >> subimage(I) 显示截图:

⑶显示灰度图像 ①代码:>> I1=imread('256bmp.bmp'); >> imagesc(I1,[0,256]) 显示截图: 代码:>> I1=imread('256bmp.bmp'); >> colormap(gray); >> subplot(1,2,1); >> imagesc(I1,[0,256]); >> title('灰度级为[0 256]的mouse.bmp图'); >> subplot(1,2,2); >> imagesc(I1,[0,64]); >> colormap(gray); >> title('灰度级为[0 64]的mouse.bmp图'); 显示截图:

Matlab实验二

实验二DFS和DFT 实验任务 1、阅读并输入实验原理中介绍的例题程序,观察输出的图形曲线,理解每一条语句的含义。 2、已知一个信号序列的主值为x(n)=[0,1,2,3,2,1,0],显示两个周期的信号序列波形,要求: (1)用DFS求信号的幅度频谱和相位频谱,用图形表示; (2)求IDFS的图形,并与原信号进行比较。 N = 7; xn = [0,1,2,3,2,1,0]; xn = [xn xn]; n = 0:2*N-1; k = 0:2*N-1; Xk = xn*exp(-j*2*pi/N).^(n'*k); x = (Xk*exp(j*2*pi/N).^(n'*k))/(2*2*N); subplot(2,2,1),stem(n,xn); title('x(n)');axis([-2,2*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,2),stem(n,abs(x)); title('IDFS|X(k)|');axis([-2,2*N,1.1*min(xn),1.1*max(xn)]); subplot(2,2,3),stem(k,abs(Xk)); title('|X(k)|');axis([-2,2*N,1.1*min(abs(Xk)),1.1*max(abs(Xk))]); subplot(2,2,4),stem(k,angle(Xk)); title('arg|X(k)|');axis([-2,2*N,1.1*min(angle(Xk)),1.1*max(angle(Xk)) ]);

3、已知有限长序列x(n)=[7,6,5,4,3,2],求x(n)的DFT 和IDFT ,要求: (1) 画出DFT 对应的()X k 和()arg X k ????的图形。 (2)画出原信号与傅里叶逆变换IDFT[X(k)]图形进行比较 xn = [7 6 5 4 3 2]; N = length(xn); n = 0:N-1; k = 0:N-1; Xk = xn*exp(-j*2*pi/N).^(n'*k); x = (Xk*exp(j*2*pi/N).^(n'*k))/N; figure,subplot(2,2,1),stem(n,xn); title('x(n)'); subplot(2,2,2),stem(n,abs(x)); title('IDFT|X(k)|'); subplot(2,2,3),stem(k,abs(Xk)); title('|X(k)|'); subplot(2,2,4),stem(k,angle(Xk)); title('arg|X(k)|'); axis([0,N,1.1*min(angle(Xk)),1.1*max(angle(Xk))]) 4、一周期序列的主值x(n)=[7,6,5,4,3,2],求x(n)周期周期重复次数为3次时的DFS 。要求: (1)画出原主值和信号周期序列信号; (2)画出序列傅里叶变换对应的()X k %和()arg X k ????%的图形。 xn = [7 6 5 4 3 2];

实验1 MATLAB集成环境使用

实验四浸出制剂的制备 实验一 MATLAB集成环境使用实验目的: 1.熟悉MATLAB的基本环境 2.掌握MATLAB的基本命令 3.掌握简单线性方程组的求解 4.掌握MATLAB的行编辑和页面编辑 实验内容与要求 1.观察MATLAB 的基本环境,熟悉菜单和工具栏 2.MATLAB基本命令的使用 a.运行demos, 观看演示程序 b.工作空间管理命令: who , whos , clear , which , quit ,exit workspace c.路径编辑命令: path, cd ,addpath rmpath d.显示格式命令: type wall.m , more on , type coneball.m , more off ,type coneball.m e.窗口清理命令: coneball2 clc cla clf close f. 操作系统命令: copyfile pwd dir delete mkdir g. 联机帮助命令:help help . helpwin lookfor zoom which rguizoom help rguizoom what ver signal 3.简单线性方程组的求解 以学号 208040401 为例 A=[ 2 0 8 0 4 0 4 0 1] b=[ 208 40 401] x==A\b 4.行编辑与页面编辑 a.键入magic(4) 使用,调出该命令,并改变为magic(6)执行. b.执行coneball命令 edit命令, 打开coneball.m文件 改变文件中的半径和高, 存盘后,重新执行该命令,比较前后的不同. 页脚内容1

MATLAB程序设计实验报告

MATLAB实验报告 一、实验名称 实验4图形绘制(1) 二、实验目的: 熟悉和掌握MA TLAB基本的二维图形绘制函数。 三、实验内容: 1.绘制简单的二维图形 2.一个坐标系绘制多幅图形 3.图形标识和坐标控制 4.交互式图形指令 四、回答问题: (本次实验未预留问题) 五、遇到的问题及解决: 遇到了求y=lnx时,输入“y=ln(x)”不被软件识别的问题,查看常用数学函数表后改为y=log(x)成功解决。 在求10x时不知道用什么函数,函数表里也查不到,在老师的点拨下用“y=10.^x”解决。 在绘图时发现默认线型不够明显,查表后使用尖三角、叉号代替默认线型。 六、体会: 本次实验我学会了利用MATLAB绘制图形的基本方法,以及相应的备注方法。 难点是了解各种函数的具体作用并熟练掌握。 体会是:多学多练,孰能生巧,日积月累,必有提高。

思考题: 1.在同一坐标系绘制t3,-t2,t2sint在[0,2π]内的曲线图。 x=0:pi/50:2*pi; y1=t.*t.*t; y2=-t.*t; y3=t.*t.*sin(t); plot(t,y1,'^k',t,y2,'.k',t,y3,'xk'); legend('\ity=t^3','\ity=-t^2','\itt^2*sint'); 2.在一幅图中画出4幅子图,分别绘制sin2x,tanx,lnx,10x的图形,并加上适当的图形注释。注意:把函数变成MATLAB对应的形式。 x=0:pi/50:2*pi; y1=sin(2*t); y2=tan(x); y3=log(x); y4=10.^x; subplot(2,2,1) plot(x,y1); legend('y=sin2x'); subplot(2,2,2) plot(x,y2) legend('y=tanx'); subplot(2,2,3) plot(x,y3)

MATLAB实验二运算基础答案

MATLAB实验二运算基础答案 以下是为大家整理的mATLAb实验二运算基础答案的相关范文,本文关键词为mATLAb,实验,运算,基础,答案,实验,mATLAb,运,您可以从右上方搜索框检索更多相关文章,如果您觉得有用,请继续关注我们并推荐给您的好友,您可以在综合文库中查看更多范文。 实验二、mATLAb运算基础 一、实验目的 掌握mATLAb各种表达式的书写规则及常用函数的使用。掌握mATLAb中字符串、元胞数组和结构的常用函数的使用。二、实验内

容及步骤 1、设有矩阵A和b,A=[12345;678910;1112131415;1617 181920;2122232425],b=[3016;17-69;023-4;970;41311] 1)求它们的乘积c 2)将矩阵c的右下角3x2子矩阵赋给D >>A=[1:1:5;6:1:10;11:1:15;16:1:20;21:1:25];b=[3016;17-69;023-4;9 70;41311];...c=A*b,D=c(3:5,2:3)c=9315077258335237423520397588705 557753890717D=5203977055578907172、完成下列操作 1)求[100,999]之间能被61整除的数及其个数(提示:先 利用冒号表达式,再利用find和length函数。) >>A=[100:999];b=find(rem(A,61)==0),b_total=length(b) b=2384145206267328389450511572 633694755816877b_total=15 2)建立一个字符串向量,删除其中的大写字母(提示:利 用find函数和空矩阵。) >>a=['mATLAbisimportant'],b=abs(a);c=find(b A=12222222222s=2047 7、建立矩阵A并回答有关问题 A{1,1}='1';A{1,2}='brenden';A{2,1}=reshape(1:9,3,3);A{2,2}={12,34,2;54,2 1,3;4,23,67}; 1)使用访问的方式如何将brenden改写成bRenDen?2)分别执

MATLAB的实验环境及基本命令

实验一 MATLAB 的实验环境及基本命令 一实验目的: 1. 学习了解MATLAB 勺实验环境 2. 在MATLA 系统命令窗口练习有关 MATLAB^令的使用。 二实验步骤 1. 学习了解MATLAB 勺实验环境: 在 Windows 桌面上,用 mouse 双击MATLAB!标,即可进入 MATLA 啲默认界面: 图1-1 MATLAB 系统命令窗口 MATLAB 勺默认界面由三部分组成: ① Comma nd Win dows 命令窗口 ② Comma nd History 历史窗口 ③ Workspace 工作空间 2. 练习MATLA 療统命令的使用。 ①表达式 MATLAB 勺表达式由变量、数值、函数及操作符构成。实验前应掌握有关变量、数值、函数及操作 符的有关内容及使用方法。 三实验内容 练习1-1 :计算下列表达式: 要求计算完毕后,键入相应的变量名,查看并记录变量的值。 a=(1+{10)/2 b=|3+5| c=sin(e±) d = 250 /sin ( ’) 实验过程及结果:a=(1+sqrt(10))/2 a =2.0811 b= abs(3+5*i) b =5.8310 c= si n(exp(-2.3)) c=0.1001 d=250/s in (pi/6) d=500.0000 ②.向量运算:n 维向量是由n 个成员组成的行或列数组。在 MATLA 中,由分号分隔的方括号中的元 素产生一个列向量;由逗号或空号分隔的方括号中的元素产生一个列向量;同维的向量可进行加减运 算,乘法须遵守特殊的原则。 练习1-2 已知:X=[2 ; -4 ; 8] 求:Y=R ; P=5*R; E=X* Y ; S=X * Y 实验过程及结果:R=[tan(pi/4),sqrt(9),-5] R=1.0000 3.0000 - Y=R' Y=1.0000 P=5*R P =5.0000 15.0000 -25.0000 R=1.0000 3.0000 -5.0000

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