版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一、 MATLAB 程序设计入门实验目的熟悉 matlab 界面 ;掌握 matlab 的变量的命名规则 ;掌握常用数学运算符 号和标点符号的使用方法 ;掌握常用数学函数的使用方法 ;掌握建立和使用 M 文件的方法 ; 学会创建简单的数组并对数组元素进行访问 , 掌握数组的各 种运算 ;学会创建数组并对数组元素进行访问和操做 ,掌握矩阵的各种运算 规则;掌握关系与逻辑运算符的使用规则; 实验原理与方法 一、变量与函数1、变量变量是任何程序设计语言的基本元素之一, MATLAB 语言当然也不例外。 与常规的程序设计语言不同的是, MATLAB 语言并不要求对所使用变量 进行事先声明,也不需要
2、指定变量类型,它会自动根据所赋予变量的值或 对变量所进行的操作来确定变量的类型; 在赋值过程中, 如果变量已存在, MATLAB 语言将使用新值代替旧值,并以新的变量类型代替旧的变量类 型。在 MATLAB 语言中变量的命名遵守如下规则:( 1 )变量名必须是不含空格的单个词;( 2 )变量名以字母开头,变量名中可包含字母、数字、下划线,但不能 使用标点;(3)变量名长度不超过31位,第31个字符之后的字符将被忽略;(4) 变量名区分大小写;(5)关键字(如if、while等)以与固有函数(如max,sum 等)不能作为变 量名;与其他的程序设计语言相同,MATLAB 语言中也存在变量作用域的
3、问题。 在未加特殊说明的情况下,MATLAB 语言将所识别的一切变量视为局部变量,即仅在其调用的 M文件内有效。若要定义全局变量,应对变量进 行声明,即在该变量前加关键字 global 。一般来说,全局变量常用大写的 英文字符表示,尽管这不是MATLAB 语言所必需的。特殊变量:MATLAB 有一些预定义的变量,这些特殊的变量称为常量。下表给出了MATLAB 语言中经常使用一些常量与其说明。特殊变量取值ans用于结果的缺省变量名Pi圆周率eps计算机的最小数,当和1相加就产生一个比1大的数flops浮点运算数inf无穷大,如1/0NaN不定量,如0/0i,ji=j= J 1n argin所用函
4、数的输入变量数目n argout所用函数的输出变量数目realmin最小可用正实数realmax最大可用正实数2、数学运算符号与标点符号(1 ) MATLAB的每条命令后,若为逗号或无标点符号,则显示命令的结果;若命令后为分号,则禁止显示结果(2 )“ % ”后面所有文字为注释(3)“”表示续行.+加法运算,适用于两个数或两个冋阶矩阵相加.减法运算*乘法运算*点乘运算/除法运算./点除运算A乘幕运算A点乘幂运算反斜杠表示左除.3、数学函数函数名称函数名称si n(x)正弦函数asin(x)反正弦函数cos(x)余弦函数acos(x)反余弦函数tan (x)正切函数ata n(x)反正切函数ab
5、s(x)绝对值max(x)最大值min (x)最小值sum(x)兀素的总和sqrt(x)开平方exp(x)以e为底的指数log(x)自然对数logio(x)以10为底的对数sig n(x)符号函数fix(x)取整1、创建简单的数组x=a b c d e f x=first : last仓U建从 firstx=first : in creme nt: last数,last结束的行向量x=linspace(first , last , n )n个元素的行向量x=logspace(first , last , n)有n个元素的对数分隔行向量.例:x=linspace(1,2,10)y=10.A(x)
6、创建包含指定元素的行向量幵始,加1计数,到last结束的行向量创建从first 幵始,加in creme nt计创建从first幵始,到last结束,有创建从first幵始,到last结束,二、数组与矩阵z=logspace(1,2,10)2、数组元素的访问( 1 )访问一个元素:x(i) 表示访问数组 x 的第 i 个元素.(2 )访问一块元素:x(a : b : c)表示访问数组x的从第a个元素幵始,以步长为b到第c个元素(但不超过c), b可以为负数,b缺损时为 1.(3)直接使用元素编址序号 . x(a b c d) 表示提取数组 x 的第 a、 b、c、d 个元素构成一个新的数组x(
7、a) x(b) x(c) x(d).3、数组的方向 前面例子中的数组都是一行数列,是行方向分布的 . 称之为行向量 . 数组 也可以是列向量,它的数组操作和运算与行向量是一样的,唯一的区别是 结果以列形式显示 .产生列向量有两种方法:直接产生 例 c=1 ;2;3;4转置产生例 b=1 2 3 4; c=b'说明:以空格或逗号分隔的元素指定的是不同列的元素,而以分号分 隔的元素指定了不同行的元素 .4、数组的运算(1)标量-数组运算 数组对标量的加、减、乘、除、乘方是数组的每个元素对该标量施加相应 的加、减、乘、除、乘方运算 .设: a=a1,a2,,a n, c= 标量则: a+c=
8、a1+c,a2+c, ,an+ca.*c=a1*c,a2*c, ,an*ca./c= a1/c,a2/c, ,an/c(右除)c= c/a1,c/a2, ,c/an (左除)a.Ac= a1Ac,a2Ac, ,anAcc.Aa= cAa1,cAa2, ,cAan(2)数组 -数组运算 当两个数组有相同维数时,加、减、乘、除、幂运算可按元素对元素方式 进行的,不同大小或维数的数组是不能进行运算的 .设: a=a1,a2, ,an, b=b1,b2, ,bn则: a+b= a1+b1,a2+b2, ,an+bna.*b= a1*b1,a2*b2, ,an*bna./b= a1/b1,a2/b2,
9、,an/bnb=b1/a1,b2/a2, ,bn/ana.Ab=a1Ab1,a2Ab2,,a n® n( 3 )数组维数: length(a)5、矩阵的建立逗号或空格用于分隔某一行的元素,分号用于区分不同的行;除了分号, 在输入矩阵时,按 Enter 键也表示开始一新行; 输入矩阵时,严格要求 所有行有相同的列 .例: m=1 2 3 4 ;5 6 7 8 ;9 10 11 12p=1 1 1 12 2 2 23 3 3 3 特殊矩阵的建立: a= 产生一个空矩阵,当对一项操作无结果时,返回空矩阵, 空矩阵的大小为零 .b=zeros(m ,n)产生一个 m 行、 n 列的零矩阵c=
10、ones(m , n)产生一个 m 行、 n 列的元素全为 1 的矩阵d=eye(m ,n)产生一个 m 行、 n 列的单位矩阵6、矩阵中元素的操作(1)矩阵 A 的第 r 行: A(r,:)(2)矩阵 A 的第 r 列: A(:,r)( 3 )依次提取矩阵 A 的每一列,将 A 拉伸为一个列向量: A (:)( 4 )取矩阵 A 的第 i1i 2 行、第 j1j 2 列构成新矩阵 :A(i 1:i2, j1:j2)( 5 )以逆序提取矩阵 A 的第 i1i 2 行,构成新矩阵 :A(i 2:-1:i1,:)( 6 )以逆序提取矩阵 A 的第 j1j 2 列,构成新矩阵 :A(:, j2:-1
11、 :j1 )(7)删除 A 的第 i1i 2 行,构成新矩阵 :A(i 1:i2,:)= (8)删除 A 的第 j1j 2 列,构成新矩阵 :A(:, j1:j2)= ( 9 )将矩阵 A 和 B 拼接成新矩阵: A ,B;A;B7、矩阵的运算(1)标量 -矩阵运算:同标量 -数组运算。( 2)矩阵加法: A+B( 3)矩阵乘法: A*B( 4)方阵的行列式: det ( A)( 5 )方阵的逆: inv (A )( 6 )方阵的特征值与特征向量: V ,D=eigA( 7 )求矩阵维数: m,n=size(A)( 8 )求数组或矩阵元素之和: Sum( 9 )求数组或矩阵元素的均值: mea
12、n( 10 )求矩阵或数组的最大最小值: max,min(11 )求数组或矩阵的非零元素与下标:find (A )find ( A>C )例:、X = 104-300086;indices = find(X)结果: indices =1 3 4 8 9例:X = 104-300086;find(X > 2)结果: ans =389例: X = 3 2 0; -5 0 7; 0 0 1;r,c,v = find(X)则结果为: r 为矩阵 X 的非零元素的行指标所构成的向量c 为矩阵 X 的非零元素的列指标所构成的向量v 为矩阵 X 的非零元素的所构成的向量。例: X = 3 2 0
13、; -5 0 7; 0 0 1;r,c,v = find(X>2)(11 )求矩阵的范数 :norm(A,1) 计算矩阵 A 的 1 范数norm(A,2) 计算矩阵 A 的 2 范数norm(A,inf) 计算矩阵 A 的无穷范数三、关系与逻辑运算1 、关系操作符关系操作符说明<小于<=小于或等于>大于>=大于或等于=等于=不等于2、逻辑运算符逻辑操作符说明&与1或非四、程序设计Matlab 有两种工作方式:1 )人机交互的命令行指令操作方式,即在命令窗口每输入一条命令,则立即运行该命令得到结果。2)进行控制流的程序设计,即编制一种可存储的以 M为扩展名
14、的文件(简 称M文件),M文件有两种形式,命令式(Script )和函数式(Function).两者相同之处在于它们都是以m作为扩展名的文本文件,不进入命令窗口,而是由文本编辑器来创建的外部文本文件。M文件分两种:命令式M文件:也称脚本文件(Script file),就是将Matlab 的一 系列命令按顺序编制成一个文本文件,文件名后缀为M,然后在 comma nd win dow下运行文件名,则按顺序执行文件中的命令。文件建立方法:1. 在 Matlab 中,点:File->New->M-file2. 在编辑窗口中输入程序内容3. 点:File->Save ,输入文件名,后
15、缀为 M,存盘例:建立命令式脚本文件 qwe.m在编辑窗口输入如下命令:a=1b=2;%行尾加分号,注意运行结果。c=a+b然后存盘。在 comma nd wi ndow 下输入 qwe 并回车。注:在运行次文件之前,需要把它所在目录加到 MATLAB的搜索路径上 去,或将文件所在目录设为当前目录。(2)函数式M文件:(function file ) MATLAB 的内部函数是有限的, 有时为了研究某一个函数的各种性态,需要为MATLAB定义新函数,为此必须编写函数文件.一个函数M文件与脚本文件类似之处在于它们都 是一个有.m扩展名的文本文件。如同脚本 M文件一样,函数 M文件不 进入命令窗口
16、,而是由文本编辑器所创建的外部文本文件。一个函数的M文件与脚本文件在通信方面是不同的。函数与 MATLAB工作空间之间的 通信,只通过传递给它的变量和通过它所创建的输出变量。在函数内中间 变量不出现在 MATLAB 工作空间,或与 MATLAB 工作空间不交互。一 个函数的M文件的第一行把M文件定义为一个函数,并指定它的名字。它与文件名相同,但没有 .m 扩展名。它也定义了它的输入和输出变量。 这类文件的第一行必须是一特殊字符 function 开始,格式为:functionY1,Y2 Ym=函数名(X1,X2,Xn )其中X1,X2, 氷n为输入变量,Y1,Y2Ym为输出变量,均可,X为数、
17、数组或者矩阵。M 文件建立方法:1. 在 Matlab 中,点 :File->New->M-file2. 在编辑窗口中输入程序内容3. 点: File->Save ,存盘, M 文件名必须与函数名一致。注: 函数式文件执行之后,只保留最后结果(输出变量 ),不保留中间过程,所定义的变量也仅在函数内部起作用,并随调用的结束而被清除。例:定义函数 f(x 1 ,x 2)=100(x 2-x12)2+(1-x 1)21. 建立 M 文件: fun.mfunction f=fun(x)f=100*(x (2)-x(1)A2)A2+(1-x(1)A22. 可以直接使用函数 fun.m
18、例如:计算 f(1,2), 只需在 Matlab 命令窗口键入命令:x=1 2fun(x)注:上述所定义的函数 fun 的输入变量只有一个 X,X 是一个二维数组。 也 可使输入变量为两个,但是调用该函数时,输入参数必须也是两个数。1. 建立 M 文件: fun.mfunction f=fun(x1,x2)f=100*(x2-x1A2)A2+(1-x1)A22. 可以直接使用函数 fun.m 例如:计算 f(1,2), 只需在 Matlab 命令窗 口键入命令:fun(1,2)10) 控制语句MATLAB 提供三种决策或控制流结构:for 循环、 while 循环、 if-else-end 结
19、构 .这些结构经常包含大量的 MATLAB 命令,故经常出现在 MATLAB 程序 中,而不是直接加在 MATLAB 提示符下1 、 for 循环:允许一组命令以固定的和预定的次数重复for x=arraycommandsend在 for 和 end 语句之间的命令串 commands 按数组 ( array )中的每一 列执行一次 . 在每一次迭代中, x 被指定为数组的下一列,即在第 n 次循 环中, x=array( :, n)例:求1+2+100先建立脚本文件: mysum.mmysum=0;for i=1:1:100mysum=mysum+i;end存盘,然后在命令窗口输入 mysu
20、m ,并回车。2 、 While 循环与 for 循环以固定次数求一组命令相反, while 循环以不定的次数求一组 语句的值 . while expression命令语句 1命令语句 2III命令语句 nend只要在表达式 (expression) 里的所有元素为真,就执行 while 和 end 语 句之间的命令串例 求 1+2+ +100建立脚本文件: mysum.mmysum=0;i=1;while (i<=100)mysum=mysum+i;i=i+1;end例: Fibonacci 数组的元素满足 Fibonacci 规则: ak 2(k 1,2, ) ;且 a1 a2 1。
21、现要求该数组中第一个大于 10000ak ak 1 ,的元素。a(1)=1;a(2)=1;i=2;while a(i)<=10000a(i+1)=a(i-1)+a(i);% 当现有的元素仍小于 10000 时,求解下一个i=i+1;end;i,a(i)i =%显示结果。21ans =109464. break : 跳出本层循环( for 循环或 while 循环)例:用 for 循环指令来寻求 Fibonacc 数组中第一个大于 10000 的元素 n=100;a=ones(1,n);for i=3:na(i)=a(i-1)+a(i-2);if a(i)>=10000a(i),%输
22、出 数组中第一个大于 10000 的元素break; % 跳出所在的一级循环。end;end,i% 输出元编号ans =10946i =215 return :终止后面语句的执行,并返回结果。6、 If-Else-End 结构( 1 )有一个选择的一般形式是:if expression命令语句 1命令语句 2III命令语句 nend如果在表达式 (expression) 里的所有元素为真,就执行 if 和 end 语句之 间的命令串( 2 )有两个选择的一般形式是:if expression1IIIelseIIIend(3) 有三个或更多的选择的一般形式是:if expression1IIIe
23、lseifexpressi on2elseif expressi on3elseEnd例:建立符号函数( fhfun.m )function f=fhfun(x)if x>0f=1;elseif x=0f=0;elsef=-1;end可以从命令窗口输入 fhfun(3), fhfun(-2) 分别计算函数值7. switch-case-otherwise 语句(开关结构)此语句与 C 语言中的选择语句具有相同的功能, 它通常用于条件较多而且 较单一的情况,类似于一个数控的多路开关。其语法结构如下: switch expressioncase value1IIIcase value2cas
24、e value n otherwise endexpression 是一个标量或者字符串,将 expression 的值依次和各个 case 指令后面的检测值进行比较,当比较结果为真时, MATLAB 执行后 面的一组命令,然后跳出 switch 结构。如果所有的结果都为假,则执行 otherwise 后的命令。当然 otherwise 指令也可以不存在。例 :学生的成绩管理,用来演示 switch 结构的应用。% 划分区域:满分 (100) ,优秀 (90-99) ,良好 (80-89) ,与格 (60-79) , 不与格 (<60) 。N = input(' 输入分数
25、9;);switch Ncase 100% 得分为 100 时S =' 满分 '%列为 '满分 '等级case 90% 得分在 90 和 99 之间S =' 优秀 '%列为 '优秀 '等级case 80% 得分在 80 和 89 之间S =' 良好 '%列为 '良好 '等级case 60% 得分在 60 和 79 之间S =' 与格 '%列为 '与格 '等级otherwise % 得分低于 60 。S =' 不与格 '%列为'不与格 '等级enddisp(S)% 输出 S三.实验内容( 1 )对以下问题 ,编写 M 文件 : 是我校一个班级某数学课程期末试卷每题得分情况,学号一行为该小题满 分, O 列为平时成绩。请求出: 1 、每小题平均得分; 2 班均分; 3 不与格人数;4 若期末占 80% ,平时成绩占 20% ,请给出每位学生总评成
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2023年菏泽辅警招聘考试真题附答案详解(基础题)
- 2023年营口辅警招聘考试真题附答案详解(黄金题型)
- 2023年马鞍山辅警招聘考试题库附答案详解(黄金题型)
- 2023年玉溪辅警招聘考试题库含答案详解(培优a卷)
- 2023年鞍山辅警招聘考试真题含答案详解(研优卷)
- 2024年吴忠辅警招聘考试真题含答案详解(典型题)
- 长沙轨道交通职业学院《应用回归分析》2024-2025学年第一学期期末试卷
- 2025年山西省汾阳市汾阳中学高二生物第一学期期末监测模拟试题含解析
- 2026届河北省新生物高一第一学期期末学业质量监测模拟试题含解析
- 2023年阿里辅警招聘考试真题附答案详解(培优)
- 小学生主题班会通用版《军章闪耀》 课件
- 《固体能带理论》课件
- 会议座次礼仪常识
- IP视域下迪士尼娱乐产业的实践与探索
- 医学影像学名词解释汇总
- 儿科学(石河子大学)智慧树知到课后章节答案2023年下石河子大学
- pep人教版英语五年级上册 Unit 3 《What would you like》单元作业设计
- 《工程项目投资与融资》- 教学大纲
- 法学类国际经贸规则专业综合概述
- 中心导管-种类-介绍课件
- 人工智能基础与应用课件
评论
0/150
提交评论