版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MATLAB上机实验一一、实验目的初步熟悉 MATLAB 工作环境,熟悉命令窗口,学会使用帮助窗口查找帮助信息。命令窗口二、实验内容(1) 熟悉 MATLAB 平台的工作环境。(2) 熟悉 MATLAB 的 5 个工作窗口。(3) MATLAB 的优先搜索顺序。三、实验步骤1. 熟悉 MATLAB 的5 个基本窗口 Command Window (命令窗口 ) Workspace (工作空间窗口 ) Command History (命令历史记录窗口 ) Current Directory (当前目录窗口 ) Help Window ( 帮助窗口 )(1) 命令窗口 (Command Wind
2、ow)。在命令窗口中依次输入以下命令:>>x=1>> y=1 2 3 4 5 6789;>> 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 =12345678910t1 =1111111 1t2 =1 1 1t3 =111t4 =111111111t4 =1000010000100001思考题: 变量如何声明,变量名须遵守什么规则、是否区分大小写。答:(
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)lin
6、space()函数:如a=linspace(n1,n2,n3),表示在线性空间上,行矢量的值从n1 到 n2(2) 工作空间窗口 (Workspace)。单击工作空间窗口右上角的按钮,将其从 MATLAB 主界面分离出来。 在工作空间查看各个变量,或在命令窗口用 who, whos(注意大小写 )查看各个变量。 在工作空间双击变量,弹出 Array Editor 窗口 (数组编辑器窗口 ),即可修改变量。 使用 save 命令把工作空间的全部变量保存为my_var.mat 文件。>>save my_var.mat 输入下列命令:>>clear all %清除工作空间的所
7、有变量观察工作空间的变量是否被清空。使用 load 命令把刚才保存的变量载入工作空间。>>load my_var.mat 清除命令窗口命令:>>clc(3) 历史命令窗口 (Command History)。打开历史命令窗口,可以看到每次运行 MATLAB 的时间和曾在命令窗口输入过的命令,练习以下几种利用历史命令窗口重复执行输入过的命令的方法。 在历史命令窗口中选中要重复执行的一行或几行命令, 右击,出现快捷菜单,选择Copy,然后再 Paste 到命令窗口。 在历史命令窗口中双击要执行的一行命令,或者选中要重复执行的一行或几行命令后,用鼠标将其拖动到命令窗口中执行。
8、 在历史命令窗口中选中要重复执行的一行或几行命令, 右击,出现快捷菜单,选择Evaluate Selection,也可以执行。 或者在命令窗口使用方向键的上下键得到以前输入的命令。例如,按方向键“”一次,就重新将用户最后一次输入的命令调到MATLAB提示符下。重复地按方向上键“”,就会在每次按下的时候调用再往前一次输入的命令。类似地,按方向键“”的时候,就往后调用一次输入的命令。按方向键“ ”或者方向键“ ”就会在提示符的命令中左右移动光标,这样用户就可以用类似于在字处理软件中编辑文本的方法编辑这些命令。(4) 当前目录命令窗口 (Current Directory) 。MATLAB的当前目录
9、即是系统默认的实施打开、装载、编辑和保存文件等操作时的文件夹。打开当前目录窗口后,可以看到用“是保存在目录 C:MATLAB6p5work下。save”命令所保存的my_var.mat文件(5) 帮助窗口 (Help Window) 。单击工具栏的图标,或选择菜单View|Help,或选择菜单 Help|MATLAB Help都能启动帮助窗口。 通过 Index 选项卡查找 log2()函数的用法, 在Search index for 栏中输入需要查找的词汇“ log2”,在左下侧就列出与之最匹配的词汇条目,选择“ log21 ”,右侧的窗口就会显示相应的内容。 也可以通过 Search 选项
10、卡查找 log2( )函数的用法。 Search 选项卡与 Index 选项卡不同, Index 只在专用术语表中查找,而 Search 搜索的是整个 HTML帮助文件。2. MATLAB 的数值显示格式设置屏幕显示方式有紧凑 (Compact)和松散 (Loose)两种,其中 Loose 为默认方式。>>a=ones(1,30)>>format compact>>a数字显示格式有 short、long、short e、long e 等,请参照教材的列表练习一遍。>>format long>>pi>>format shor
11、t>>pi>>format long>>pi>>format +>>pi>>-pi3. 变量的搜索顺序在命令窗口中输入以下指令:>>pi>>sin(pi);>>exist('pi')>>pi=0;>>exist('pi')>>pi>>clear pi>>exist('pi')>>pi思考题: 3 次执行 exist('pi')的结果一样吗?如果不一样,试
12、解释为什么?答:不一样, pi 原来是库存函数,但是如果被赋值则系统默认被赋予的值为 pi 后来的值,但是当执行 clear pi 之后所赋的值被清空,因此 pi 的值又成为 3.1416 圆周率 pi 是系统的默认常量,为什么会被改变为 0?答:pi 原来是库存函数, 但是如果被赋值则系统默认被赋予的值为pi后来的值,但是当执行 clear pi之后所赋的值被清空,因此pi 的值又成为 3.1416实验二MATLAB 语言基础一、实验目的基本掌握 MATLAB 向量、矩阵、数组的生成及其基本运算 (区分数组运算和矩阵运算 )、常用的数学函数。交接字符串的操作。二、实验内容(1) 向量的生成和
13、运算。(2) 矩阵的创建、引用和运算。(3) 多维数组的创建及运算。(4) 字符串的操作。三、 实验步骤1.向量的生成和运算1) 向量的生成直接输入法:A =23456>> B=1;2;3;4;5 B =12345冒号生成发:>> A=1:2:10 ,B=1:10 ,C=10:-1:1 A =13579B =12345678910C =10987654321函数法:Linspace( ) 是线性等分函数,logspace( )是对数等分函数。>> A=linspace(1,10) ,B=linspace(1,30,10)A =Columns 1 throug
14、h 91.00001.09091.18181.27271.36361.45451.54551.63641.7273Columns 10 through 181.81821.90912.00002.09092.18182.27272.36362.45452.5455Columns 19 through 272.63642.72732.81822.90913.00003.09093.18183.27273.3636Columns 28 through 363.45453.54553.63643.72733.81823.90914.00004.09094.1818Columns 37 through
15、 454.27274.36364.45454.54554.63644.72734.81824.90915.0000Columns 46 through 545.09095.18185.27275.36365.45455.54555.63645.72735.8182Columns 55 through 635.90916.00006.09096.18186.27276.36366.45456.54556.6364Columns 64 through 726.72736.81826.90917.00007.09097.18187.27277.36367.4545Columns 73 through
16、 817.54557.63647.72737.81827.90918.00008.09098.18188.2727Columns 82 through 908.36368.45458.54558.63648.72738.81828.90919.00009.0909Columns 91 through 999.18189.27279.36369.45459.54559.63649.72739.81829.9091Column 10010.0000B =Columns 1 through 91.00004.22227.444410.666713.888917.111120.333323.55562
17、6.7778Column 1030.0000>> A=logspace(0,4,5) A =110100100010000练习: 使用 logspace( )创建 1-4的有 10 个元素的行向量。答案:>> A=logspace(1,10,4*pi)A =1.0e+010 *Columns 1 through 90.00000.00000.00000.00000.00000.00000.00010.00050.0035Columns 10 through 120.02310.15201.00002) 向量的运算维数相同的行向量只见可以相加减, 维数相同的列向量也可以相
18、加减, 标量可以与向量直接相乘除。>> A=1 2 3 4 5, B=3:7, A =12345B =34567>> AT=A', BT=B', AT =12345BT =34567>> E1=A+B, E2=A-BE1 =4681012E2 =-2-2-2-2-2>> F=AT-BT, F =-2 -2 -2 -2 -2>> G1=3*A, G2=B/3,G1 =3691215G2 =1.00001.33331.66672.00002.3333向量的点积与叉积运算。>> A=ones(1,10);B=(1
19、:10); BT=B'>> E1=dot(A,B)55>> E2=A*BTE2 =55>> clear>> A=1:3,B=3:5, A =123B =345>> E=cross(A,B) E =-24-22.矩阵的创建、引用和运算1) 矩阵的创建和引用矩阵是由 mn 元素构成的矩阵结构,行向量和列向量是矩阵的特殊形式。直接输入法:>> A=1 2 3;4 5 6 A =123456>> B=147 2 5 8369B =147258369>> A(1)ans =1>> A(4:
20、end) ans =536>> B(:,1)ans =123>> B(:)ans =123456789>> B(5)ans =5抽取法>> clear>> A=1 2 3 4;5 6 7 8;9 10 11 12;13 14 15 16 A =12345678910111213141516>> B=A(1:3,2:3) B =236 710 11>> C=A(1 3,2 4) C =2 410 12>> A(1 3;2 4) ans =1 9513函数法:>> A=ones(3,4) A
21、 =111111111111>> B=zero(3)? Undefined function or method 'zero' for input arguments of type 'double'.>> B=zeros(3) B =000000000>> C=eyes(3,2)? Undefined function or method 'eyes' for input arguments of type 'double'. >> C=eye(3,2)C =100 10 0>
22、;> D=magic(3) D =816357492拼接法>> clear>> A=ones(3,4) A =111111111111>> B=zeros(3) B =000000000>> C=eye(4) C =1000010000100001>> D=A B D =111100011110001111000>> F=A;CF =1111111111111000010000100001拼接函数和变形函数法:>> clear>> A=0 1;1 1 A =0 11 1>> B=2
23、*ones(2) B =2 22 2>> cat (1,A,B,A) ans =0 11 12 2220 11 1>> cat (2 A,B,A)? cat (2 A,B,A)Error: Unexpected MA TLAB expression.>> cat(2,A,B,A)ans =012201112211>> repmat(A,2,2) ans =0101111101011111>> repmat(A,2)ans =0101111101011111练习:使用函数法、 拼接法、 拼接函数法和变形函数法, 按照要求创建以下矩阵:A
24、 为 34的全 1矩阵、B 为3 3的 0矩阵/C为 3 3的单位矩阵、D 为 33 的魔方阵、E 由 C和D 纵向拼接而成, F 抽取 E 的 2-5 行元素生成、 G 由经变形为3 4 的矩阵而得、以为子矩阵用复制函数 (repmat)生成 6 8 的大矩阵 H。答案:>> A=ones(3,4) A =111111111111>> B=zeros(3,3) B =000000000>> C=eye(3) C =100010001>> D=magic(3) D =816357492>> E=C;D E =1000100018163
25、57492>> F=(2:5,:)? F=(2:5,:)Error: Expression or statement is incorrect-possibly unbalanced (, , or .>> F=E(2:5,:)F =010001816357>> G=respace(E,3,4)? Undefined command/function 'respace'.>> G=respace(F,3,4)? Undefined command/function 'respace'.>> G=resh
26、ape(F,3,4) G =031101568007>> H=repmat(G,2,2) H =0311031101560156800780070311031101560156800780072) 矩阵的运算矩阵的加减、数乘与乘法已知矩阵:>> A=1 23 -1,A =1 23 -1>> B=-1 01 2B =-101 2>> A+Bans =0 24 1>> 2*Aans =2 46 -2>> 2*A-3*B ans =5 43 -8>> A*Bans =1 4-4-2矩阵的逆矩阵>> for
27、mat rat;A=1 0 1;2 1 2;0 4 6 A =101212046>> A1=inv(A)A1 =-1/32/3-1/6-2104/3-2/31/6>> A*A1ans =100010001矩阵的除法>> a=1 2 1;3 1 4;2 2 1,b=1 1 2,d=b'a =121314221b =112d =112>> c1=b*inv(a),c2=b/ac1 =6/73/7-4/7c2 =6/73/7-4/7>> c3=inv(a)*d, c4=abc3 =12/7-4/7? Error using =>
28、; mldivide Matrix dimensions must agree.>> c3=inv(a)*d, c4=adc3 =12/7-4/7c4 =12/7-4/7练习: 按下列要求求出各种的矩阵运算的值求矩阵的秩、特征值和特征向量、矩阵的乘幂与开方;矩阵的指数与对数矩阵的提取与翻转答案:>> A=6 34 3-2 57 -48 -1-3 -7A =6343-257-48-1-3-7>> B=rank(A) B =3>> rb=rank(A)rb =3>> X,Lamda=eig(A)? Error using => ei
29、g Matrix 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-2578 -1 -3C =634-2578-1-3>> X,Lamda=eigs(C) X =0.8013-0.1094-0.16060.3638-0.65640.86690.47490.7464-0.4719Lamda =9.7326000-3.29280001.5602>>
30、X,Lamda=eig(C) X =0.8013-0.1094-0.16060.3638-0.65640.86690.47490.7464-0.4719Lamda =9.7326000-3.29280001.5602>> X,Lamda=eig(C) X =0.8013-0.1094-0.16060.3638-0.65640.86690.47490.7464-0.4719Lamda =9.7326000-3.29280001.5602>> D=A2? Error using => mpower Matrix must be square.>> D=C2
31、 D =62293334126262234>> E=sqrtm(C) E =2.2447+ 0.2706i0.6974 - 0.1400i0.9422 - 0.3494i-0.5815 + 1.6244i2.1005 - 0.8405i1.7620- 2.0970i1.9719- 1.8471i-0.3017 + 0.9557i0.0236+ 2.3845i>> F=expm(C)F =1.0e+004 *1.06530.54150.63230.48300.24650.28760.63160.32060.3745>> G=logm(C)Warning: Pr
32、incipal 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.4686i0.5305 - 0.2425i0.5429 - 0.6049i1.1938 + 2.8123i0.3658 - 1.4552i-0.5514 - 3.6305i-0.0748 - 3.1978i0.7419 + 1.6546i1.8333 +
33、 4.1282i>> H=fliplr(C)H =43675-2-3-18>> I=triu(C)I =63405700-3>> J=tril(C)J =600-2508-1-3>> K=diag(C) K =65-33. 多维数组的创建及运算1)多维数组的创建>> A1=1,2,3;4 5 6;7,8,9;A2=reshape(10:18,3,3)A2 =101316111417121518>> T1(:,:,1)=ones(3);T1(:,:,2)=zeros(3) T1(:,:,1) =111111111T1(:,:
34、,2) =000000000>> T2=ones(3,3,2) T2(:,:,1) =111111111T2(:,:,2) =111111111>> T3=cat(3,A1,A2),T4=repmat(A1,1,1,2) T3(:,:,1) =123456789T3(:,:,2) =101316111417121518T4(:,:,1) =123456789T4(:,:,2) =1234567892)多维数组的创建数组运算用小圆点加在运算符的前面表示,以区分矩阵的运算。特点是两个数组相对应的元素进行运算。>> A=1:6;B=ones(1,6);>&g
35、t; C1=A+B,C2=A-BC1 =234567C2 =012345>> C3=A.*B,C4=B./A,C5=A.BC3 =123456C4 =1.00000.50000.33330.25000.20000.1667C5 =1.00000.50000.33330.25000.20000.1667关系运算或逻辑运算的结果都是逻辑值。>> I=A>3,C6=A(I)I =000111C6 =456>> A1=A-3,I2=A1&AA1 =-2-10123I2 =110111>> I3=I I3 =1110004.字符串的操作1)
36、字符串的创建>> S1='Ilike MATLAB' S1 =Ilike MATLAB>> S2='I''m a stuent.'S2 =I'm a stuent.>> S3=S2,'and',S1S3 =I'm a stuent.andIlike MATLAB 2)求字符串长度>> length(S1)ans =12>> size(S1) ans =1123)字符串与一维数值数组的相互转换>> CS1=abs(S1)CS1 =73108105
37、10710132776584766566>> CS2=double(S1) CS2 =7310810510710132776584766566>> 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 =AaBbCcD
38、dEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz实验三MALTAB数值运算一、实验目的掌握 MATLAB的数值运算及其运算中所用到的函数,掌握结构数组和细胞数组的操作。二、实验内容1) 多项式运算。2) 多项式插值和拟合。3) 数值为积分。4) 结构数组和细胞数组。三、实验步骤1、多项式运算1) 多项式表示。在MATLAB中,多项式表示成向量的形式。如: S43S35S29 在 MATLAB中表示为>> s=1 3 -5 0 92) 多项式的加减法相当于向量的加减法,但必须注意阶次要相同。如不同, 低阶次的要补 0。如多项式2s23s9 与多项式 s43s35s24s7 相加。>> s1=0 0 2 3 11>> s2=1 2 -5 4 7>> s3=s1+s2答; s1 =002311s2 =12-547s3 =12-37183) 多项式的乘、除法分别用函数conv 和的 deconv 实现。>> s1=2 3 11>> s2=1 3 -5 4 7>> s3=conv(s1,s2)>> s4=deconv(s3,s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外贸产品订购合同范本
- 团队管理服务合同范本
- 外卖快餐订餐合同范本
- 夜茶设备转让合同范本
- 塑料方木租赁合同范本
- 地面铺设钢板合同范本
- 土地置换套间房协议书
- 塑钢模板租赁合同范本
- 场地围栏出租合同范本
- 国外土地租售合同范本
- 家政服务业职业技能大赛-养老护理赛项技术文件
- 2025营养指导员考试真题库(含答案)
- 2024-2025年北师大版九年级上册数学期中测试题(1-4单元)
- 生活不能自理的护理措施
- 2024年新青岛版(六三制)六上科学全册知识点
- 停车场监控方案
- DL∕T 1987-2019 六氟化硫气体泄漏在线监测报警装置技术条件
- 2024年高投电子信息产业集团招聘笔试冲刺题(带答案解析)
- 全球化视野下的艺术交流与合作
- DL-T5372-2017水电水利工程金属结构与机电设备安装安全技术规程
- 2024年云南楚雄州楚雄市事业单位选调30人历年高频考题难、易错点模拟试题(共500题)附带答案详解
评论
0/150
提交评论