MATLAB运算基础(第2章)答案

上传人:xgs****56 文档编号:10806951 上传时间:2020-04-15 格式:DOC 页数:35 大小:1.02MB
返回 下载 相关 举报
MATLAB运算基础(第2章)答案_第1页
第1页 / 共35页
MATLAB运算基础(第2章)答案_第2页
第2页 / 共35页
MATLAB运算基础(第2章)答案_第3页
第3页 / 共35页
点击查看更多>>
资源描述
实验01讲评、参考答案讲 评未交实验报告的同学名单数学:6人(11、12级)信科:12-04, 12-22, 13-47批改情况:问题1:不仔细,式子中出错。问题2:提交的过程不完整。问题3:使用语句尾分号(;)不当,提交的过程中不该显示的结果显示。问题4:截屏窗口没有调整大小。附参考答案:MATLAB软件课内实验王平实验01 MATLAB运算基础(第2章 MATLAB数据及其运算)一、实验目的1. 熟悉启动和退出MATLAB的方法。2. 熟悉MATLAB命令窗口的组成。3. 掌握建立矩阵的方法。4. 掌握MATLAB各种表达式的书写规则以及常用函数的使用。二、实验内容1. 数学表达式计算先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。1.1 计算三角函数(注意:度要转换成弧度,e2如何给出)示例:点击Command Window窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。命令窗口中的执行过程:1.2 计算自然对数,其中(提示:clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。 应用点乘方)命令窗口中的执行过程:1.3 求数学表达式的一组值提示:利用冒号表达式生成a向量,求各点的函数值时用点乘运算。命令窗口中的执行过程:1.4 求分段函数的一组值 ,其中t=0:0.5:2.5提示:用逻辑表达式求分段函数值。命令窗口中的执行过程:1.5 对工作空间的操作接着显示MATLAB当前工作空间的使用情况并保存全部变量提示:用到命令who, whos, save, clear, load,请参考教材相关内容。命令窗口中的执行过程: who %显示当前工作空间中的变量名Your variables are:a t x z1 z2 z3 z4 whos %显示当前工作空间中的变量名及信息 Name Size Bytes Class Attributes a 1x61 488 double t 1x6 48 double x 2x2 64 double complex z1 1x1 8 double z2 2x2 64 double complex z3 1x61 976 double complex z4 1x6 48 double save varfile %生成文件varfile.mat,并将当前工作空间的变量存入其中 clear all %清除当前工作空间中的全部变量 who whos load varfile %将文件varfile.mat装入 whoYour variables are:a t x z1 z2 z3 z4 whos Name Size Bytes Class Attributes a 1x61 488 double t 1x6 48 double x 2x2 64 double complex z1 1x1 8 double z2 2x2 64 double complex z3 1x61 976 double complex z4 1x6 48 double 2. 矩阵运算与数组运算已知:2.1 矩阵加、减和数乘运算 A+6*B和A-B+I(其中I为单位矩阵。注意:如何得到单位矩阵)命令窗口中的执行过程:2.2 矩阵乘积和点乘积A*B和A.*B命令窗口中的执行过程:2.3 矩阵的乘方和点乘方A3和A.3命令窗口中的执行过程:2.4 矩阵的右除和左除A/B及BA命令窗口中的执行过程:2.5 拼接矩阵成大的矩阵A,B和A(1,3,:);B2命令窗口中的执行过程:3. 矩阵乘积、矩阵的子矩阵设有矩阵A和B3.1 求矩阵A和B的乘积求它们的乘积并赋给C。(提示:可简化A的输入,用冒号表达式、reshape、矩阵转置)命令窗口中的执行过程:3.2 求矩阵C的子矩阵将矩阵C的右下角32子矩阵赋给D。命令窗口中的执行过程:3.3 查看MATLAB工作空间的使用情况命令窗口中的执行过程:4. 完成下列数据操作4.1 求100,999之间能被21整除的数的个数提示:先利用冒号表达式,再利用find和length函数。命令窗口中的执行过程:4.2 建立一个字符串向量,删除其中的大写字母提示:利用find函数和空矩阵。命令窗口中的执行过程:三、实验提示1.1 计算三角函数提示(注意:度要转换成弧度,e2如何给出)提示1:示例:点击Command Window窗口右上角的,将命令窗口提出来成悬浮窗口,适当调整窗口大小。命令窗口中的执行过程:提示2:e2的表示请查表“2.3 常用数学函数及其含义”。用exp(2)。1.2 计算自然对数提示,其中提示1:clc命令擦除命令窗口,clear则清除工作空间中的所有变量,使用时注意区别,慎用clear命令。提示2:ln和开方的表示请查“表2.3 常用数学函数及其含义”。用log, sqrt。提示3:x2是数组运算。用x.2或x.*x。提示4:i为复数的虚数单位(j也是)。若将i作变量则其虚数单位无效,恢复用clear i。慎用i, j做变量。1.4 求分段函数的一组值提示 ,其中t=0:0.5:2.5提示:用逻辑表达式求分段函数值。提示1:参考例2.4。提示2:对于第1个分段条件表达式 0 t =0&t=1&t=2&t x=(5+cos(47*pi/180)/(1+sqrt(7)-2*i)x = 1.1980 + 0.6572i其中,pi和i都是MATLAB预先定义的变量,分别代表圆周率和虚数单位。3. 预定义变量 p18表2.1 常用的预定义变量及其含义预定义变量含义ansepspii,jinf,InfNaN,nannarginnargoutrealmaxrealminlasterrlastwar默认赋值变量机器零阈值2.2204e-016近似值虚数单位无穷大,如1/0的结果非数,如0/0,inf/inf的结果函数输入参数个数函数输出参数个数最大正实数最小正实数存放最新的错误信息存放最新的警告信息预定义变量有特定的含义,应尽量避免重新赋值。i=2 %对预定义变量重新赋值2*iclear i%恢复预定义变量2*ii = 2ans = 4ans = 0 + 2.0000i2.2.2 变量的管理 p191内存变量的显示与删除显示工作空间中驻留的变量名清单及信息命令:who %显示变量名清单whos %显示变量名清单及信息删除工作空间中的变量命令:clear 变量名工作空间窗口专门用于内存变量的管理。在该窗口中显示所有内存变量的属性。l 当选中某些变量后,再单击Delete按钮,将删除这些变量。l 双击变量后,将进入变量编辑器。可以观察变量中的具体元素,也可修改具体元素。l 输入较大矩阵时,可采用变量编辑器。2内存变量文件用MAT文件可把当前工作空间中的一些有用变量长久地保留下来,扩展名是.mat。MAT文件的生成和装入,常用格式为:save 文件名变量名表 -append-asciiload 文件名变量名表 -asciil 文件名 可带路径,不需带扩展名.mat,默认对.mat文件进行操作。l 变量名表变量名以空格分隔。省略时,保存或装入全部变量。l -ascii 选项使文件以ASCII格式处理,省略时以二进制格式处理。l -append选项使变量追加到MAT文件中。2.2.3 数据的输出格式 p20用十进制数表示一个常数,可采用日常记数法和科学记数法。一般情况下,内部每一个数据元素都用双精度数表示和存储。设置或改变数据输出格式format命令的格式为: format 格式符格式符决定数据的输出格式表2.2 控制数据输出格式格式符及含义格式符含义short(默认)小数点后4位,不超过7位有效数字。大于1000的实数用5位有效数字的科学记数法long15位有效数字short e5位有效数字科学记数法long e15位有效数字科学记数法short g从short和short e选择最佳方式long g从long和long e选择最佳方式rat近似有理数表示hex十六进制表示+正数、负数、零分别用+、-、空格表示bank银行格式,元、角、分表示compact输出变量之间无空行loose输出变量之间有空行可用Help format查询例 输出格式format4/3%当前输出格式ans = 1.3333format long%15位有效数字形式输出4/3ans = 1.333333333333333format rat%近似有理数表示4/3ans = 4/3 format compact%输出变量之间没有空行4/3ans = 4/3format loose%输出变量之间有空行4/3ans = 4/3 format short%short为默认输出格式2.3 矩阵的表示 p21表 矩阵操作函数及其含义函数名含 义eyeoneslinspacesub2indind2subsizelengthreshapeend 单位矩阵全1矩阵生成行向量下标转换成序号序号转换成下标给出矩阵的行数和列数给出矩阵行数和列数中较大者矩阵重排预定义变量,某一维末尾下标空矩阵2.3.1 矩阵的建立1. 直接输入法从键盘直接输入矩阵的元素。方法如下: 将矩阵的元素用方括号括起来,输入元素; 同一行的元素间用空格或逗号分隔; 不同行的元素间用分号(或回车)分隔。例 A=1,2,3;4 5 6;7,8 9A = 1 2 3 4 5 6 7 8 92. 利用M文件建立矩阵对于比较大且复杂的矩阵,可专门建立一个M文件。例2.2 利用M文件建立矩阵(1) 启动文本编辑器,输入:MYMAT=101,102,103,104,105;201,202,203,204,205;301,302,303,304,305(2) 存盘(文件名为mymatrix.m)。(3) 在命令窗口中输入mymatrix,即运行该M文件,就建立一个名为MYMAT的矩阵。3. 建立大矩阵(矩阵拼接)大矩阵可由方括号中的小矩阵或向量建立。 A=1,2;3,4A = 1 2 3 4 eye(2)ans = 1 0 0 1 ones(2)ans = 1 1 1 1 C=A,eye(2),ones(2),AC =12101112340111342.3.2 冒号表达式用冒号表达式产生行向量,一般格式:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值上限。用linspace函数产生行向量。调用格式:linspace(a,b,n)其中a和b是第一个和最后一个元素,n是元素总数。2.3.3 矩阵的拆分1矩阵元素通过下标引用矩阵的元素,例 A=1,2,3;4,5,6A = 1 2 3 4 5 6 A(2,3)ans = 6 A(2,2)=22; AA = 1 2 3 4 22 6 A(4,5)=10; AA = 1 2 3 0 0 4 22 6 0 0 0 0 0 0 0 0 0 0 0 10采用矩阵元素的序号来引用矩阵元素。元素的序号是相应元素在内存中的排列顺序。在MATLAB中,矩阵按列存储,先第一列,再第二列,依次类推。 A=1,2,3;4,5,6A = 1 2 3 4 5 6 A(3)ans = 2 A(5)ans = 3 A(8)? Attempted to access A(8); index out of bounds because numel(A)=6.numel(A) 返回A中元素个数。序号(Index)与下标(Subscript )一一对应。以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。互转换关系用sub2ind和ind2sub函数求得。A=ones(3,4)A = 1 1 1 1 1 1 1 1 1 1 1 1size(A)%给出矩阵的行数和列数ans = 3 4sub2ind(size(A),1,2)%下标(1,2)转换为序号ans = 4i,j=ind2sub(size(A),3)%序号转换为下标i = 3j = 1length(A)%给出矩阵行数和列数中较大者ans = 4reshape(A,m,n)在矩阵总元素保持不变的前提下,将矩阵重新排成mn矩阵。 x=1:1:12; y=reshape(x,3,4)y = 1 4 7 10 2 5 8 11 3 6 9 12 z=reshape(y,2,7)? Error using = reshapeTo RESHAPE the number of elements must not change.2. 矩阵拆分(1) 利用冒号表达式获得子矩阵已知A为矩阵A(:,j)第j列全部元素;A(i,:)第i行的全部元素;A(i,j)第i行、第j列的元素;A(i:i+m,:)第ii+m行的全部元素;A(:,k:k+m)第kk+m列的全部元素;A(i:i+m,k:k+m)第ii+m行内,并在第kk+m列中的所有元素;A(:)将每一列元素堆叠起来,成为一个列向量。end表示某一维的末尾元素下标。A(end,:) 最后一行A(:,end) 最后一列(2) 利用空矩阵删除矩阵的元素给变量X赋空矩阵的语句:X= 注意,X= 与clear X不同:clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。2.4 MATLAB数据的运算 p262.4.1 算术运算1基本算术运算MATLAB的基本算术运算有:加减*乘/右除左除乘方注意,运算是在矩阵意义下进行的。(1) 矩阵加减运算假定矩阵A和B,则A+B和A-B实现矩阵的加减运算。运算规则是:l 若A和B的维数相同,则可以执行矩阵的加减运算,A和B的相应元素相加减。l 若A与B的维数不相同,将给出错误信息。注意,A、B均不是标量。(2) 矩阵乘法 若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。(3) 矩阵除法有两种矩阵除法运算:左除/右除若A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于inv(A)*BB/A等效于B*inv(A)对于含有标量的运算,两种除法运算的结果相同。如 3/4和43有相同的值,都等于0.75。又如 设a=10.5,25,则a/5=5a=2.1000 5.0000对于矩阵运算,一般ABB/A。(4) 矩阵的乘方一个矩阵的乘方运算可表示成Ax要求A为方阵,x为标量。2点运算有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*点乘./点右除.点左除.点乘方两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。3. MATLAB常用数学函数 p29l 函数的自变量规定为矩阵变量。l 运算法则是将函数逐项作用于矩阵的元素上。l 结果是一个与自变量同维数的矩阵。表2.3 常用数学函数及其含义 p29函数名含义三角函数sqrtloglog10log2exppow2absanglerealimagconjremmodfixfloorceilroundsigngcdlcm略平方根函数自然对数函数常用对数函数以2为底的对数函数自然指数函数2的幂绝对值函数复数的幅角复数的实部复数的虚部复数共轭运算求余数或模运算模运算向零方向取整不大于自变量的最大整数不小于自变量的最小整数四舍五入到最邻近的整数符号函数最大公因子最小公倍数函数使用说明:(1) 三角函数以弧度为单位计算。(2) abs函数可以求实数的绝对值、复数的模、字符串的ASCII码值。 abs(-10)ans = 10 abs(3+4i)ans = 5 abs(abc)ans = 97 98 99(3) 用于取整的函数有fix向0方向取整floor向-方向取整ceil向+方向取整round四舍五入到最邻近的整数(4) rem(x,y)和mod(x,y)要求x,y必须为相同大小的实矩阵或为标量。rem求余数或模运算mod模运算l 当y0时rem(x,y)=x-y.*fix(x./y)mod(x,y)=x-y.*floor(x./y)l 当y=0时rem(x,0)=NaN(非数)mod(x,0)=x2.4.2 关系运算 p306种关系运算符:小于大于=大于或等于=等于=不等于运算法则:(1) 两个标量的比较若关系成立,结果为1,否则为0。(2) 两个同维数矩阵的比较对相同位置的元素比较。(3) 标量与矩阵的比较标量与矩阵的每一个元素比较。例2.3 建立5阶方阵,判断A的元素是否能被3整除。A=24,35,13,22,63;23,39,47,80,80;.90,41,80,29,10;45,57,85,62,21;.37,19,31,88,76P=rem(A,3)=0%判断元素是否被3整除A = 24 35 13 22 63 23 39 47 80 80 90 41 80 29 10 45 57 85 62 21 37 19 31 88 76P = 1 0 0 0 1 0 1 0 0 0 1 0 0 0 0 1 1 0 0 1 0 0 0 0 02.4.3 逻辑运算 p31逻辑运算符:&与|或非运算法则:(1) 在逻辑运算中,确认非零元素为真,用1表示,零元素为假,用0表示。(2) a和b是两个标量l a&b a,b全为非零时,结果为1,否则为0。l a|b a,b中只要有一个非零,结果为1,否则为0。l a 当a是零时,结果为1;当a非零时,结果为0。(3) 两个运算量是同维矩阵相同位置上的元素按标量规则逐个进行。(4) 一个是标量,另一个是矩阵标量与矩阵中的每个元素之间按标量规则逐个进行。(5) 逻辑非是单目运算符,也服从矩阵运算规则。(6) 在算术、关系、逻辑运算中,算术运算优先级最高,逻辑运算优先级最低。例2.4 在0, 3区间,求y=sinx的值。要求: 消去负半波,即(, 2)内的函数值置0。和内取均值为。%方法1x=0:pi/100:3*pi;y=sin(x);y1=(x2*pi).*y;%消去负半波q=(xpi/3 & x7*pi/3 & x=0).*y;%消去负半波p=sin(pi/3);y2=(y=p)*p+(y A=4,15,-45,10,6;56,0,17,-45,0A = 4 15 -45 10 6 56 0 17 -45 0 find(A=10 & A=a & ch=z) %找小写字母的位置ch(k)= A+(ch(k)-a) %小写字母变成大写chchar(ch) %ASCII码矩阵转换为字符矩阵length(k) %统计小写字母的个数char(0:29;30:59;60:89;90:119;120:149)subch =ABc12revch =9gF65e4d321cBAk = 3 7 9 13ch =ABC123D4E56FG9ch =ABC123D4E56FG9ans =ABC123D4E56FG9ans = 4ans = !#$%&()*+,-./0123456789:;?ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz|?函数调用格式:eval(t)其中t为字符串。作用:把字符串的内容作为对应的MATLAB语句来执行。表2.5 字符串处理函数及其含义函数名含 义setstrcharmat2strnum2strint2strstr2numstrcatstrcmpabs将ASCII码值转换成字符 同上,将代替setstr 将矩阵转换成字符串 将数值转换成字符串将整数转换成字符串将字符串转换成数值用于字符串的连接用于字符串的比较将字符转换成ASCII码(1) 若字符串中含有单撇号,该撇号用两个单撇号表示。(2) 某些情况下用字符串向量表示,即用 括起来。disp(Im a teacher.)f=70;c=(f-32)/1.8;disp(Room temperature is ,.num2str(c),degrees C.)Im a teacher.Room temperature is 21.1111degrees C.2.6 结构数据和单元数据 p342.6.1 结构数据1结构矩阵的建立与引用结构矩阵 其元素可以是不同的数据类型,将一组不同属性的数据纳入到一个统一的变量名下进行管理。建立结构矩阵可采用给结构成员赋值的办法。格式为:结构矩阵名.成员名=表达式其中表达式应理解为矩阵表达式。例 建立含有3个元素的结构矩阵 a(1).x1=10; a(1).x2=liu; a(1).x3=11,21;34,78;a(2).x1=12; a(2).x2=wang; a(2).x3=34,191;27,578; a(3).x1=14;a(3).x2=cai; a(3).x3=13,890;67,231; a(2).x3%引用矩阵元素a(2)的成员x3ans = 34 191 27 578 a(2)%引用矩阵元素a(2)ans = x1: 12 x2: wang x3: 2x2 double a%引用结构矩阵aa = 1x3 struct array with fields: x1 x2 x32结构成员的修改 p35可由需要增加或删除结构成员。给a中任意一个元素增加成员x4:a(1).x4=410075;但其他成员均为空矩阵,可用赋值语句给它赋值。用rmfield函数删除结构成员。a=rmfield(a,x4); a(1).x1=10; a(1).x2=liu; a(1).x3=11,21;34,78;a(2).x1=12; a(2).x2=wang; a(2).x3=34,191;27,578; a(3).x1=14;a(3).x2=cai; a(3).x3=13,890;67,231; a(1).x4=410075a = 1x3 struct array with fields: x1 x2 x3 x4 a=rmfield(a,x4)a = 1x3 struct array with fields: x1 x2 x33关于结构的函数表2.6 结构的函数及其含义 p36函数名含义structgetfieldrmfieldisstructfieldnamessetfieldisfield建立或转换为结构矩阵获取结构成员的内容删除结构成员是结构时,值为真获取结构成员名设定结构成员的内容成员在结构中时,值为真2.6.2 单元数据 p36单元矩阵的各个元素是不同类型的数据,用带有大括号下标的形式引用单元矩阵元素。1单元矩阵的建立与引用建立单元矩阵和一般矩阵相似,只是矩阵元素用大括号括起来。例 建立单元矩阵。 b=10,liu, 11,21;34,78;.12,wang,34,191;27,578;.14,cai,13,890;67,231; bb = 10 liu 2x2 double 12 wang 2x2 double 14 cai 2x2 double b3,3ans = 13 890 67 231 b3,3=10; b3,3ans = 10 bb = 10 liu 2x2 double 12 wang 2x2 double 14 cai 10 b(4)%第4个元素ans = liu b4ans =liu2关于单元的函数表2.7 单元的函数及其含义 p37函数名含 义celldispnum2cellcell2structiscellcellplotdealstruct2cell显示单元矩阵内容把数字矩阵转换为单元矩阵把单元矩阵转换为结构矩阵是单元矩阵时,值为真显示单元矩阵的图形描述把输入分配给输出把结构矩阵转换为单元矩阵35
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!