MATLAB上机实验实验报告.doc_第1页
MATLAB上机实验实验报告.doc_第2页
MATLAB上机实验实验报告.doc_第3页
MATLAB上机实验实验报告.doc_第4页
MATLAB上机实验实验报告.doc_第5页
已阅读5页,还剩64页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

MATLAB上机实验一一、实验目的初步熟悉 MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。命令窗口二、实验内容(1) 熟悉MATLAB 平台的工作环境。(2) 熟悉MATLAB 的5 个工作窗口。(3) MATLAB 的优先搜索顺序。三、实验步骤1. 熟悉MATLAB 的5 个基本窗口 Command Window (命令窗口) Workspace (工作空间窗口) Command History (命令历史记录窗口) Current Directory (当前目录窗口) Help Window (帮助窗口)(1) 命令窗口(Command 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思考题: 变量如何声明,变量名须遵守什么规则、是否区分大小写。答:(1)变量声明 1.局部变量每个函数都有自己的局部变量,这些变量只能在定义它的函数内部使用。当函数运行时,局部变量保存在函数的工作空间中,一旦函数退出,这些局部变量将不复存在。脚本(没有输入输出参数,由一系列MATLAB命令组成的M文件)没有单独的工作空间,只能共享调用者的工作空间。当从命令行调用,脚本变量存在基本工作空间中;当从函数调用,脚本变量存在函数空间中。2.全局变量在函数或基本工作空间内,用global声明的变量为全局变量。例如声明a为全局变量:global a声明了全局变量的函数或基本工作空间,共享该全局变量,都可以给它曲赋值。如果函数的子函数也要使用全局变量,也必须用global声明。3.永久变量永久变量用persistent声明,只能在M文件函数中定义和使用,只允许声明它的函数存取。当声明它的函数退出时,MATLAB不会从内存中清除它,例如声明a为永久变量:persistent a(2)变量命名规则如下:始于字母,由字母、数字或下划线组成;区分大小写;可任意长,但使用前N个字符。N与硬件有关,由函数namelengthmax返回,一般N=63;不能使用关键字作为变量名(关键字在后面给出);避免使用函数名作为变量名。如果变量采用函数名,该函数失效。(3)区分大小写 试说明分号、逗号、冒号的用法。 答:分号:加上分号“;”其作用是将计算机结果存入内存,但不显示在屏幕上,反之,语句结尾若不加“;”,则表示在语句执行后,在将计算结果存入内存的同时,还将运算结果显示出来。 逗号:分割列表 冒号:从什么到什么,比如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),表示在线性空 间上,行矢量的值从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(3) 历史命令窗口(Command History)。打开历史命令窗口,可以看到每次运行MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。 在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Copy,然后再Paste 到命令窗口。 在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行。 在历史命令窗口中选中要重复执行的一行或几行命令,右击,出现快捷菜单,选择Evaluate Selection,也可以执行。 或者在命令窗口使用方向键的上下键得到以前输入的命令。例如,按方向键“”一次,就重新将用户最后一次输入的命令调到MATLAB 提示符下。重复地按方向上键“”,就会在每次按下的时候调用再往前一次输入的命令。类似地,按方向键“”的时候,就往后调用一次输入的命令。按方向键“”或者方向键“”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令。(4) 当前目录命令窗口(Current Directory)。MATLAB 的当前目录即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹。打开当前目录窗口后,可以看到用“save”命令所保存的my_var.mat 文件是保存在目录C:MATLAB6p5work 下。(5) 帮助窗口(Help Window)。单击工具栏的图标,或选择菜单View|Help,或选择菜单Help|MATLAB Help 都能启动帮助窗口。 通过Index 选项卡查找log2()函数的用法,在Search index for 栏中输入需要查找的词汇“log2”,在左下侧就列出与之最匹配的词汇条目,选择“log21”,右侧的窗口就会显示相应的内容。 也可以通过Search 选项卡查找log2( )函数的用法。Search 选项卡与Index 选项卡不同,Index 只在专用术语表中查找,而Search 搜索的是整个HTML 帮助文件。2. MATLAB 的数值显示格式设置屏幕显示方式有紧凑(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原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为3.1416 圆周率pi 是系统的默认常量,为什么会被改变为0?答:pi原来是库存函数,但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行clear pi之后所赋的值被清空,因此pi的值又成为3.1416 实验二 MATLAB语言基础1、 实验目的基本掌握MATLAB向量、矩阵、数组的生成及其基本运算(区分数组运算和矩阵运算)、常用的数学函数。交接字符串的操作。2、 实验内容(1) 向量的生成和运算。(2) 矩阵的创建、引用和运算。(3) 多维数组的创建及运算。(4) 字符串的操作。三、实验步骤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 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 Columns 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.0000 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 100 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.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, 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 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 函数法: 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拼接法 clear 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 (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为的单位矩阵、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 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 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 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 c4 = 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 -3.2928 0 0 0 1.5602 X,Lamda=eig(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 -3.2928 0 0 0 1.5602 X,Lamda=eig(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 -3.2928 0 0 0 1.5602 D=A2? Error using = mpowerMatrix must be square. D=C2D = 62 29 33 34 12 6 26 22 34 E=sqrtm(C)E = 2.2447 + 0.2706i 0.6974 - 0.1400i 0.9422 - 0.3494i -0.5815 + 1.6244i 2.1005 - 0.8405i 1.7620 - 2.0970i 1.9719 - 1.8471i -0.3017 + 0.9557i 0.0236 + 2.3845i F=expm(C)F = 1.0e+004 * 1.0653 0.5415 0.6323 0.4830 0.2465 0.2876 0.6316 0.3206 0.3745 G=logm(C)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned. In funm at 153 In logm at 27G = 1.7129 + 0.4686i 0.5305 - 0.2425i 0.5429 - 0.6049i 1.1938 + 2.8123i 0.3658 - 1.4552i -0.5514 - 3.6305i -0.0748 - 3.1978i 0.7419 + 1.6546i 1.8333 + 4.1282i H=fliplr(C)H = 4 3 6 7 5 -2 -3 -1 8 I=triu(C)I = 6 3 4 0 5 7 0 0 -3 J=tril(C)J = 6 0 0 -2 5 0 8 -1 -3 K=diag(C)K = 6 5-33. 多维数组的创建及运算1) 多维数组的创建 A1=1,2,3;4 5 6;7,8,9;A2=reshape(10:18,3,3)A2 = 10 13 16 11 14 17 12 15 18 T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3)T1(:,:,1) = 1 1 1 1 1 1 1 1 1T1(:,:,2) = 0 0 0 0 0 0 0 0 0 T2=ones(3,3,2)T2(:,:,1) = 1 1 1 1 1 1 1 1 1T2(:,:,2) = 1 1 1 1 1 1 1 1 1 T3=cat(3,A1,A2),T4=repmat(A1,1,1,2)T3(:,:,1) = 1 2 3 4 5 6 7 8 9T3(:,:,2) = 10 13 16 11 14 17 12 15 18T4(:,:,1) = 1 2 3 4 5 6 7 8 9T4(:,:,2) = 1 2 3 4 5 6 7 8 92) 多维数组的创建 数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算。特点是两个数组相对应的元素进行运算。 A=1:6;B=ones(1,6); C1=A+B,C2=A-BC1 = 2 3 4 5 6 7C2 = 0 1 2 3 4 5 C3=A.*B,C4=B./A,C5=A.BC3 = 1 2 3 4 5 6C4 = 1.0000 0.5000 0.3333 0.2500 0.2000 0.1667C5 =1.0000 0.5000 0.3333 0.2500 0.2000 0.1667 关系运算或逻辑运算的结果都是逻辑值。 I=A3,C6=A(I) I = 0 0 0 1 1 1C6 = 4 5 6 A1=A-3,I2=A1&AA1 = -2 -1 0 1 2 3I2 = 1 1 0 1 1 1 I3=II3 = 1 1 1 0 0 04. 字符串的操作1) 字符串的创建 S1=Ilike MATLABS1 =Ilike MATLAB S2=Im a stuent.S2 =Im a stuent. S3=S2,and,S1S3 =Im a stuent.andIlike MATLAB2) 求字符串长度 length(S1)ans = 12 size(S1)ans = 1 123) 字符串与一维数值数组的相互转换 CS1=abs(S1)CS1 = 73 108 105 107 101 32 77 65 84 76 65 66 CS2=double(S1)CS2 = 73 108 105 107 101 32 77 65 84 76 65 66 char(CS2)ans =Ilike MATLAB setstr(CS2)ans =Ilike MATLAB练习:用char( )和向量生成的方法创建如下字符串AaBbCc.XxYyZz. S1=65:90;S2=97:122; C=S1;S2; C=C(:); S3=double(C);char(S3)ans =AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz 实验三 MALTAB数值运算一、实验目的掌握MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。二、实验内容1)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论