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

更新时间:2023-09-13 12:26:01 阅读量: 教学研究 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验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及以上版本。 一、Matlab环境及主要窗口的功能

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

- 1 -

其中,

1.主窗口的功能是:主窗口不能进行任何计算任务操作,只用来进行一些整体的环境参数设置,它主要对6个下拉菜单的各项和10个按钮逐一解脱。

2.命令窗口的功能是:对MATLAB搜索路径中的每一个M文件 的注释区的第一行进行扫描,一旦发现此行中含有所查询的字符串,则将该函数名及第一行注释全部显示在屏幕上。

3. 历史窗口的功能是:历史窗口显示命令窗口中的所有执行过的命令,一方面可以查看曾经执行过的命令,另一方面也可以重复利用原来输入的命令行,可以从命令窗口中直接通过双击某个命令行来执行该命令,

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

5.M文件编辑器窗口的功能是:MATLAN提供了一个内置既有编辑和调试功能好的程序编辑器;编辑器窗口也有菜单和工具栏,是编辑和调试程序非常方便

6..发行说明窗口功能是:该窗口显示MATLAB总包和已安装的工具箱的帮助、演示、GUI工具和产品主页等4个内容。

7.工作空间窗口的功能是:该窗口显示所有目前内存中MATLAB变量的变量名、数字结构、字节数以及类型,不同的变量类型分别对应不同的变量名图标

8.图形窗口的功能是:利用图形窗口和工具栏中的选项,可以对图形进行线性、颜色、标记三维视图、光照和坐标轴等的设置

9.GUI(Graphacal User Interface)窗口功能是: 二、Matlab的帮助使用

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

- 2 -

通过命令窗口中直接输入help命令将会显示当前帮助系统只能怪包含的所有项目 help

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

a:逐个元素直接输入,向量元素需要用“[]”括起来,元素之间可以用空格、逗号或分号分隔。用空格和逗号分隔生成的行向量用分号分隔生成列向量. 例如:h=[3 4 5 6 7 8]

f=[3;4;5;6;7;8]

b:利用冒号表达式创建 通过设定“步长(step)”生成一维行向量,通过格式为:

x=x0:step:xn。x0表达向量的首元素值,xn表示尾元素数值限,step表示从第二个元素开始,每一个元素与前一个元素的差值。step=1时,可以省略此项的输入,直接写成x=x0:xn。例:

y=0:10:100 x=0:100

- 3 -

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

clear %清除工空间中的所有变量 x=linspace(6,66,8) y=6:60/7:66 z=linspace(6,66)

n下,经“常用对数”均匀采样生

成一维行向量。通用格式为x=logspace(a,b,n) 。生成数组的第一个元素值为10a,最后一个元素值为10b ,n为采样总点数,缺省时,生成50维的行向量。例如:

clear %清除工作空间的所有变量 x=logspace(1,8,8) y=1:7/7:8 xx=10.^y

z=logspace(1,8)

d:定数对数采样生成向量 设定总点数

2:向量元素的引用

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

clear

rand('state',0) %把均匀分布伪随机发生器置为初始状态 x=rand(1,8) %产生(1×8)的均匀分布随机数组 x(7) %引用数组x的第7个元素 y=x([1 2 5]) %引用数组x的第一、二、五个元素 z=x(1:3) %引用数组x的前三个元素 w=x(3: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]) %重复引用数组

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

① 四则运算符号有(+ - * / \\ .* ./ .\\)

a: 标量a与向量x进行四则运算是a分别与x中的每个元素进行四则运算并生一个与x等长的向量。例如

clear

x=[4 5 6 7 8 9 10 11] y=3*x+3

z=x/2-1

- 4 -

p=4\\x

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

clear

x=[1 2 3 4 5 6] y=x*2 z=x+y w=x.*y n=x./y

d=x.\\y

② 幂运算(.^)

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

clear

x=[1 2 3 4 5 6] y=x.^3 z=3.^y

b:向量x与向量y的幂运算是元素对元素的幂运算。例如:

clear

x=[1 2 3 4 5 6] y=x*2 z=x.^y b=y.^x

③指数运算、对数运算与开方运算等

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

clear

x=[3 5 7 9 11 13] y=exp(x) z=log(x)

- 5 -

t=sqrt(x)

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

1. 矩阵的创建

① a:逐个元素直接输入 把矩阵元素需用“[ ]”括起来,同行元素

之间用空格或逗号分隔,行与行之间用分号或回车符分隔 矩阵

元素可为运算表达式,无任何元素的矩阵称为空矩阵。例如

x=[1 2 3;4 5 6;7 8 9] y=[1,2,3;4,5,6;7,8,9] k=[sin(pi/7),cos(pi/4)] T=[]

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

%Example10.m

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

emn=[456 344 224 56 36;0 97 665 86 45;29 50 5 124 36;14 38 54 259 178;459 54 145 245 233]

ans =

1/2*k^2-1/2*k ans =

1/2*a^2*x^4+1/2*a*x^2 ans = 1/6*pi^2

③通过函数创建特殊矩阵

%Example.m

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

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

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

- 6 -

B1=zeros(M,N) %生成M×N阶全0阵。 C1=zeros(size(A)) %生成与A同阶的全0阵。 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阶单位矩阵 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. 矩阵元素的引用

①相对位置引用格式:变量名(行标,列标) ②绝对位置引用格式:变量名(绝对位置索引)

clear

rand('state',0) A=rand(5,3)

A(4) %引用距阵A的第四个元素

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

3. 矩阵元素的抽取 ① 抽取行

clear

rand('state',0) A=rand(5,6)

A(4,:) %抽取矩阵A的第四行

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

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

② 抽取列

clear

rand('state',0)

- 7 -

A=rand(5,6)

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

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

③抽取块

clear

rand('state',0) A=rand(3,4)

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

④抽取矩阵对角线上的元素

clear

rand('state',0)

A=rand(6) %产生(6×6)的均匀分布随机数组 V=diag(A) %抽取矩阵A的主对角线上的元素赋值给向量V D=diag(V) %以向量V为对角线元素生成对角矩阵 D1=diag(V,2) D2=diag(V,-2)

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

⑤抽取矩阵上三角部分和下三角部分

clear

rand('state',0)

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

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

4. 矩阵的基本数学运算

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

- 8 -

clear

A=[3 2 3 0;2 1 -4 6] B=[-1 3;4 1;6 0;7 9] C=A+B' D=A*B E=B/D F=D\\A

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

clear

A=[1 2 3 0;2 1 -4 6] C=A+2 D=A*2 E=A/2 F=2\\A

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

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

clear

A=[7 2 8 0;5 1 -4 6] B=A+2 C=A.*B D=A./B E=B.\\A F=A.^2

④ 矩阵的基本初等运算 clear

A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] A(2,:)=A(2,:)*2 %2乘A的第二行

A(1,:)=A(1,:)+A(2,:) %2乘A的第二行,加到A的第一行 A([2 3],:)=A([3 2],:) %交换A的第二行和第三行

- 9 -

⑤ 矩阵的逆运算

clear

A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] B=inv(A)

⑥ 矩阵的行列式运算

clear

A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] B=det(A)

⑦ 矩阵的指数运算

clear

A=[1 2 3 0;2 1 -4 6;-1 3 4 1;6 0 7 9] B=expm(A)

⑧ 矩阵的对数运算

clear

A=[4 2 3 2;2 1 4 6;1 3 4 1;6 4 7 9] B=expm(A) C=logm(B) D1=logm(A) D2=log(A)

⑨ 矩阵的开方运算

clear

A=[9 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)

5. 矩阵的一些特殊操作

- 10 -

a:符号表达式转换成数值表达式 p='1+sqrt(2)/2'; eval(p)

b:数值表达式转换成符号表达式;例如

p=1.7071; n=sym(p) n =

17071/10000 4:符号表达式的简化

a:见符号表达式类似于数学课本中的形式显示;例如 sym x; f=taylor(exp(-x)

f=1-x+1/2*x^2-1/6*x^3+1/24*x^4-1/120*x^5 pretty(f)

b:合并符号表达式中的同类项;例如 syms x y;

f=sym(x^2*y+y*x-x^2-2*x); f=collect(f)

f=(y-1)*x^2+(y-2)*x f=collect(f,y)

f=(x^2+x)*y-x^2-2*x c:对符号表达式进行因式分解;例如 syms x; f=sym(x^7-1); f=factor(f)

f=(x-1)*(x^2+x+1)*(x^6+x^3+1)

d:对符号表达式进行展开;例如

syms x y;

f=expand((x+1)^3) f=x^3+3*x+1

s=expand(sin(x+y)) s=sin(x)*cos(y)*sin(y)

- 16 -

e:对符号表达式进行简化;例如 syms x;

f=sym((x-1)^3/(x-1)); f=simplify(f) f=(x-1)^2

simple(f) 5:符号微积分 a:符号极限;例如 syms x y;

limit((sin(x+y)-sin(x))/y,y,0) b:符号微分 syms x; sym((x-1)^3) c:符号积分;例如 syms u alpha;

int(sin(alpha*u),alpha) 6:符号方程求解

a:符号代数线性方程求解;例如 solve('p*sin(x)=r')

solve('a*x^2+b*x+c','a') b:符号代数非线性方程求解;例如

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

1:绘制一个正弦函数图象

x=0:0.1:2*pi; y=sin(x); plot(x,y)

- 17 -

10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 在图形中绘制坐标网格 x=0:0.1:2*pi; y=sin(x); plot(x,y) grid on

10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 取消坐标中的网格 x=0:0.1:2*pi;

- 18 -

y=sin(x); plot(x,y) grid on grid off

10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 x=0:0.1:2*pi; y=sin(x); z=cos(x);

plot(x,y,x,z)

- 19 -

10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 x=0:0.1:2*pi; y=sin(x); z=cos(x);

plot(x,y,'g:diamond',x,z,'b')

10.80.60.40.20-0.2-0.4-0.6-0.8-101234567 x=0:0.1:2*pi; y=sin(x); z=cos(x);

- 20 -

plot(x,y,'g:diamond',x,z,'b') axis equal

21.510.50-0.5-1-1.5-20123456

七、实验总结

- 21 -

本文来源:https://www.bwwdw.com/article/5ehh.html

Top