1、MATLAB上机实验实验报告材料MATLAB上机实验一一、实验目的初步熟悉 MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。命令窗口二、实验内容(1) 熟悉MATLAB 平台的工作环境。(2) 熟悉MATLAB 的5 个工作窗口。(3) MATLAB 的优先搜索顺序。三、实验步骤1. 熟悉MATLAB 的5 个基本窗口 Command Window (命令窗口) Workspace (工作空间窗口) Command History (命令历史记录窗口) Current Directory (当前目录窗口) Help Window (帮助窗口)(1) 命令窗口(Command
2、 Window)。在命令窗口中依次输入以下命令:x=1 y=1 2 3 4 5 6 7 8 9; z1=1:10,z2=1:2:5; w=linspace(1,10,10); t1=ones(3),t2=ones(1,3),t3=ones(3,1) t4=ones(3),t4=eye(4)x =1z1 = 1 2 3 4 5 6 7 8 9 10t1 = 1 1 1 1 1 1 1 1 t2 = 1 1 1t3 = 1 1 1t4 = 1 1 1 1 1 1 1 1 1t4 = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1思考题: 变量如何声明,变量名须遵守什么规则、是否区分
3、大小写。答:(1)变量声明 1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用。当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在。脚本(没有输入输出参数,由一系列MATLAB命令组成的M文件)没有单独的工作空间,只能共享调用者的工作空间。当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中。2.全局变量在函数或基本工作空间内,用global声明的变量为全局变量。例如声明a为全局变量:global a声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值。如果函数的子函数也要使用全局变量,也必须用
4、global声明。3.永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取。当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:persistent a(2)变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符。N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名(关键字在后面给出);避免使用函数名作为变量名。如果变量采用函数名,该函数失效。(3)区分大小写 试说明分号、逗号、冒号的用法。 答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显
5、示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来。 逗号:分割列表 冒号:从什么到什么,比如1:10意思是1到10 linspace( )称为“线性等分”函数,说明它的用法。可使用help命令,格式如下:help linspace 说明函数ones( )、zeros( )、eye( ) 的用法。答;(1)ones()函数:全部元素都为1的常数矩阵; (2)zeros()函数:全部元素都为0的矩阵; (3)eye()函数:单位矩阵; (4)linspace()函数:如a=linspace(n1,n2,n3),表示在线性空 间上,行矢量的
6、值从n1到n2(2) 工作空间窗口(Workspace)。单击工作空间窗口右上角的按钮,将其从MATLAB 主界面分离出来。 在工作空间查看各个变量,或在命令窗口用who, whos(注意大小写)查看各个变量。 在工作空间双击变量,弹出Array Editor 窗口(数组编辑器窗口),即可修改变量。 使用save 命令把工作空间的全部变量保存为my_var.mat 文件。save my_var.mat 输入下列命令:clear all %清除工作空间的所有变量观察工作空间的变量是否被清空。使用load 命令把刚才保存的变量载入工作空间。load my_var.mat 清除命令窗口命令:clc(
7、3) 历史命令窗口(Command History)。打开历史命令窗口,可以看到每次运行MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。 在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,然后再Paste 到命令窗口。 在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行。 在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Evaluate Selection,也可以执行。 或者在命令窗口使用方向键的上下键得到以前输入的命令。例如,
8、按方向键“”一次,就重新将用户最后一次输入的命令调到MATLAB 提示符下。重复地按方向上键“”,就会在每次按下的时候调用再往前一次输入的命令。类似地,按方向键“”的时候,就往后调用一次输入的命令。按方向键“”或者方向键“”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令。(4) 当前目录命令窗口(Current Directory)。MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹。打开当前目录窗口后,可以看到用“save”命令所保存的my_var.mat 文件是保存在目录C:MATLAB6p5work 下。
9、(5) 帮助窗口(Help Window)。单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口。 通过Index 选项卡查找log2()函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容。 也可以通过Search 选项卡查找log2( )函数的用法。Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件。2. MATLAB 的数值显示格式设置屏幕显示
10、方式有紧凑(Compact)和松散(Loose)两种,其中Loose 为默认方式。a=ones(1,30)format compacta数字显示格式有short、long、short e、long e 等,请参照教材的列表练习一遍。format longpiformat shortpiformat longpiformat +pi-pi3. 变量的搜索顺序在命令窗口中输入以下指令:pisin(pi);exist(pi)pi=0;exist(pi)piclear piexist(pi)pi思考题: 3 次执行exist(pi)的结果一样吗?如果不一样,试解释为什么?答:不一样,pi原来是库存函数
11、,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为3.1416 圆周率pi 是系统的默认常量,为什么会被改变为0?答:pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为3.1416 实验二 MATLAB语言基础1、实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。交接字符串的操作。2、实验内容(1) 向量的生成和运算。(2) 矩阵的创建、引用和运算。(3) 多维数组的创建及运算。(4) 字符
12、串的操作。三、实验步骤1.向量的生成和运算1) 向量的生成 直接输入法:A = 2 3 4 5 6 B=1;2;3;4;5 B = 1 2 3 4 5 冒号生成发: A=1:2:10 ,B=1:10 ,C=10:-1:1 A = 1 3 5 7 9 B = 1 2 3 4 5 6 7 8 9 10 C = 10 9 8 7 6 5 4 3 2 1 函数法:Linspace( )是线性等分函数,logspace( )是对数等分函数。 A=linspace(1,10) ,B=linspace(1,30,10)A = Columns 1 through 9 1.0000 1.0909 1.1818
13、1.2727 1.3636 1.4545 1.5455 1.6364 1.7273 Columns 10 through 18 1.8182 1.9091 2.0000 2.0909 2.1818 2.2727 2.3636 2.4545 2.5455 Columns 19 through 27 2.6364 2.7273 2.8182 2.9091 3.0000 3.0909 3.1818 3.2727 3.3636 Columns 28 through 36 3.4545 3.5455 3.6364 3.7273 3.8182 3.9091 4.0000 4.0909 4.1818 Col
14、umns 37 through 45 4.2727 4.3636 4.4545 4.5455 4.6364 4.7273 4.8182 4.9091 5.0000 Columns 46 through 54 5.0909 5.1818 5.2727 5.3636 5.4545 5.5455 5.6364 5.7273 5.8182 Columns 55 through 63 5.9091 6.0000 6.0909 6.1818 6.2727 6.3636 6.4545 6.5455 6.6364 Columns 64 through 72 6.7273 6.8182 6.9091 7.000
15、0 7.0909 7.1818 7.2727 7.3636 7.4545 Columns 73 through 81 7.5455 7.6364 7.7273 7.8182 7.9091 8.0000 8.0909 8.1818 8.2727 Columns 82 through 90 8.3636 8.4545 8.5455 8.6364 8.7273 8.8182 8.9091 9.0000 9.0909 Columns 91 through 99 9.1818 9.2727 9.3636 9.4545 9.5455 9.6364 9.7273 9.8182 9.9091 Column 1
16、00 10.0000 B = Columns 1 through 9 1.0000 4.2222 7.4444 10.6667 13.8889 17.1111 20.3333 23.5556 26.7778 Column 10 30.0000 A=logspace(0,4,5)A = 1 10 100 1000 10000练习: 使用logspace( )创建1-4的有10个元素的行向量。答案: A=logspace(1,10,4*pi)A = 1.0e+010 * Columns 1 through 9 0.0000 0.0000 0.0000 0.0000 0.0000 0.0000 0.
17、0001 0.0005 0.0035 Columns 10 through 12 0.0231 0.1520 1.00002) 向量的运算 维数相同的行向量只见可以相加减,维数相同的列向量也可以相加减,标量可以与向量直接相乘除。 A=1 2 3 4 5, B=3:7, A = 1 2 3 4 5 B = 3 4 5 6 7 AT=A, BT=B, AT = 1 2 3 4 5 BT = 3 4 5 6 7 E1=A+B, E2=A-B E1 = 4 6 8 10 12E2 = -2 -2 -2 -2 -2 F=AT-BT, F = -2 -2 -2 -2 -2 G1=3*A, G2=B/3,
18、G1 = 3 6 9 12 15 G2 = 1.0000 1.3333 1.6667 2.0000 2.3333 向量的点积与叉积运算。 A=ones(1,10);B=(1:10); BT=B; E1=dot(A,B) E1 = 55 E2=A*BT E2 = 55 clear A=1:3,B=3:5, A = 1 2 3 B = 3 4 5 E=cross(A,B) E =-2 4 -22.矩阵的创建、引用和运算 1) 矩阵的创建和引用 矩阵是由元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式。 直接输入法: A=1 2 3;4 5 6 A = 1 2 3 4 5 6 B= 1 4 7 2
19、 5 8 3 6 9 B = 1 4 7 2 5 8 3 6 9 A(1)ans = 1 A(4:end)ans = 5 3 6 B(:,1)ans = 1 2 3 B(:)ans = 1 2 3 4 5 6 7 8 9 B(5)ans = 5 抽取法 clear A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16A = 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 B=A(1:3,2:3)B = 2 3 6 7 10 11 C=A(1 3,2 4)C = 2 4 10 12 A(1 3;2 4)ans = 1 9 5 13 函数法
20、: A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1 B=zero(3)? Undefined function or method zero for input arguments of type double. B=zeros(3)B = 0 0 0 0 0 0 0 0 0 C=eyes(3,2)? Undefined function or method eyes for input arguments of type double. C=eye(3,2)C = 1 0 0 1 0 0 D=magic(3)D = 8 1 6 3 5 7 4 9 2拼接法 cl
21、ear A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1 B=zeros(3)B = 0 0 0 0 0 0 0 0 0 C=eye(4)C = 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 D=A BD = 1 1 1 1 0 0 0 1 1 1 1 0 0 0 1 1 1 1 0 0 0 F=A;CF = 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1拼接函数和变形函数法: clear A=0 1;1 1A = 0 1 1 1 B=2*ones(2)B = 2 2 2 2 cat
22、(1,A,B,A)ans = 0 1 1 1 2 2 2 2 0 1 1 1 cat (2 A,B,A)? cat (2 A,B,A)Error: Unexpected MATLAB expression. cat(2,A,B,A)ans = 0 1 2 2 0 1 1 1 2 2 1 1 repmat(A,2,2)ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1 repmat(A,2)ans = 0 1 0 1 1 1 1 1 0 1 0 1 1 1 1 1练习:使用函数法、拼接法、拼接函数法和变形函数法,按照要求创建以下矩阵:A为 的全1矩阵、B为的0矩阵/C为的
23、单位矩阵、D为的魔方阵、E由C 和D纵向拼接而成,F抽取E的2-5行元素生成、G由经变形为的矩阵而得、 以为子矩阵用复制函数(repmat)生成的大矩阵H。答案: A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1 B=zeros(3,3)B = 0 0 0 0 0 0 0 0 0 C=eye(3)C = 1 0 0 0 1 0 0 0 1 D=magic(3)D = 8 1 6 3 5 7 4 9 2 E=C;DE = 1 0 0 0 1 0 0 0 1 8 1 6 3 5 7 4 9 2 F=(2:5,:)? F=(2:5,:)Error: Expression
24、or statement is incorrect-possibly unbalanced (, , or . F=E(2:5,:)F = 0 1 0 0 0 1 8 1 6 3 5 7 G=respace(E,3,4)? Undefined command/function respace. G=respace(F,3,4)? Undefined command/function respace. G=reshape(F,3,4)G = 0 3 1 1 0 1 5 6 8 0 0 7 H=repmat(G,2,2)H = 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0
25、 0 7 8 0 0 7 0 3 1 1 0 3 1 1 0 1 5 6 0 1 5 6 8 0 0 7 8 0 0 72) 矩阵的运算 矩阵的加减、数乘与乘法 已知矩阵: A=1 2 3 -1,A = 1 2 3 -1 B=-1 0 1 2B = -1 0 1 2 A+Bans = 0 2 4 1 2*Aans = 2 4 6 -2 2*A-3*Bans = 5 4 3 -8 A*Bans = 1 4-4 -2 矩阵的逆矩阵 format rat;A=1 0 1;2 1 2;0 4 6A = 1 0 1 2 1 2 0 4 6 A1=inv(A)A1 = -1/3 2/3 -1/6 -2 1
26、 0 4/3 -2/3 1/6 A*A1ans = 1 0 0 0 1 0 0 0 1 矩阵的除法 a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=ba = 1 2 1 3 1 4 2 2 1 b = 1 1 2 d = 1 1 2 c1=b*inv(a),c2=b/ac1 = 6/7 3/7 -4/7 c2 = 6/7 3/7 -4/7 c3=inv(a)*d, c4=abc3 = 1 2/7 -4/7 ? Error using = mldivideMatrix dimensions must agree. c3=inv(a)*d, c4=adc3 = 1 2/7 -4/7 c
27、4 = 1 2/7 -4/7 练习: 按下列要求求出各种的矩阵运算的值 求矩阵的秩、特征值和特征向量、 矩阵的乘幂与开方; 矩阵的指数与对数 矩阵的提取与翻转答案: A=6 3 4 3 -2 5 7 -4 8 -1 -3 -7A = 6 3 4 3 -2 5 7 -4 8 -1 -3 -7 B=rank(A)B = 3 rb=rank(A)rb = 3 X,Lamda=eig(A)? Error using = eigMatrix must be square. X,Lamda=eigs(A)? Error using = eigsA must be a square matrix or a function which computes A*x. C=6 3 4 -2 5 7 8 -1 -3C = 6 3 4 -2 5 7 8 -1 -3 X,Lamda=eigs(C)X = 0.8013 -0.1094 -0.1606 0.3638 -0.6564 0.8669 0.4749 0.7464 -0.4719Lamda = 9.7326 0 0 0
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1