版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、3.1 基本数据类型3.2 基本运算与输入输出3.3 程序流程语句3.4 文件编写与调试3.5 编程技巧第三章第三章 MATLAB MATLAB 语言程序设计基础语言程序设计基础3.1 基本数据类型基本数据类型数值型:双精度、单精度、整数字符串型函数句柄Java类逻辑类单元结构数据结构体3.1.1变量、常量与赋值语句结构变量、常量与赋值语句结构变量命名规则命名规则 变量名区分大小写; 变量名最多不超过63个字符; 变量名必须以字母打头,之后可以是任意字母、数字或下划线,变量名中不允许使用标点、空格 MATLAB的保留关键字不能作为变量名MATLAB 保留常量3.1.1变量、常量与赋值语句结构变
2、量、常量与赋值语句结构赋值语句赋值语句 1. 直接賦值直接賦值 = 其中“表达式”是用运算符将有关运算量连接起来的式子,其结果是一个矩阵。注:注:第二种语句形式下,将表达式的值赋给MATLAB的保留变量ans。 2. 函数调用函数调用 返回变量列表返回变量列表=函数名(输入变量列表)函数名(输入变量列表)函数名的要求与变量名要求相同,函数名在对应MATLAB路径下有同名.m文件。3.1.1变量、常量与赋值语句结构变量、常量与赋值语句结构矩阵:纵横排列的二维数据表格向量:矩阵只有一行或一列时,就成为向量标量:矩阵只有一行一列,就成为标量矩阵元素:实数或复数或表达式矩阵输入方法: 直接输入法; 利
3、用M文件建立矩阵。3.1.2 Matlab的矩阵表示的矩阵表示简单矩阵简单矩阵例:123456789A3.1.2 Matlab的矩阵表示的矩阵表示行向量列向量3.1.2 Matlab的矩阵表示的矩阵表示矩阵元素还可以由表达式构成. 例: x=-1.3, sqrt(3), (1+2+3)*4/5 得到如下结果 x= -1.3000 1.7321 4.80003.1.2 Matlab的矩阵表示的矩阵表示矩阵元素引用 1)通过下标引用矩阵的元素)通过下标引用矩阵的元素 例如, A(3,2)=200 x(5)=abs(x(1) X=-1.3000 1.7321 4.8000 0 1.3000 2)通过
4、矩阵元素的序号来引用矩阵元素)通过矩阵元素的序号来引用矩阵元素 矩阵元素的序号就是相应元素在内存中的排列顺序。在MATLAB中,矩阵元素按列存储,先第一列,再第二列,依次类推。 序号(Index)与下标(Subscript )是一一对应的,以mn矩阵A为例,矩阵元素A(i,j)的序号为(j-1)*m+i。其相互转换关系也可利用sub2ind和ind2sub函数求得。3.1.2 Matlab的矩阵表示的矩阵表示利用冒号表达式建立一个向量一般格式是:e1:e2:e3其中e1为初始值,e2为步长,e3为终止值。用linspace,logspace函数产生行向量 格式为:linspace(a,b,n)
5、,logspace(a,b,n) 其中a和b是生成向量的第一个和最后一个元素,n是元素总数。 显然,linspace(a,b,n)与a:(b-a)/(n-1):b等价3.1.2 Matlab的矩阵表示的矩阵表示矩阵拆分 (1) 利用冒号表达式获得子矩阵 A(:,j)表示取A矩阵的第j列全部元素;A(i,:)表示A矩阵第i行的全部元素;A(i,j)表示取A矩阵第i行、第j列的元素。 A(i:i+m,:)表示取A矩阵第ii+m行的全部元素;A(:,k:k+m)表示取A矩阵第kk+m列的全部元素,A(i:i+m,k:k+m)表示取A矩阵第ii+m行内,并在第kk+m列中的所有元素。 此外,还可利用一
6、般向量和end运算符来表示矩阵下标,从而获得子矩阵。end表示某一维的末尾元素下标。3.1.2 Matlab的矩阵表示的矩阵表示 (2) 利用空矩阵删除矩阵的元素 在MATLAB中,定义 为空矩阵。 给变量X赋空矩阵的语句为 X= 注意,X= 与clear X不同,clear是将X从工作空间中删除,而空矩阵则存在于工作空间中,只是维数为0。3.1.2 Matlab的矩阵表示的矩阵表示建立大矩阵:大矩阵可由方括号中的小矩阵或向量建立。建立大矩阵:大矩阵可由方括号中的小矩阵或向量建立。例:执行如下命令A=A;1 3 5将生成新的矩阵新增向量与原矩阵必须维数匹配,否则出现错误信息123456789A
7、123456789135A3.1.2 Matlab的矩阵表示的矩阵表示复数矩阵 B=1 2; 3 4+1i*5 6; 7 8 B=1+5i 2+6i; 3+7i 4+8i注:矩阵元素内部不能有空格;数字和i之间不能留空格,1i中的1不可忽略。特殊矩阵 伴随矩阵,对角矩阵,万达摩方阵,魔方矩阵 全0矩阵,全1矩阵,随机数矩阵,单位矩阵,线性等距向量,对数等分向量,设三维绘图基底坐标平面3.1.2 Matlab的矩阵表示的矩阵表示 魔方(魔方(magic)矩阵)矩阵 每行、每列及两条对角线上的元素和都相等。对于每行、每列及两条对角线上的元素和都相等。对于n阶魔方阵阶魔方阵,其元素由,其元素由1,2
8、,3,n2共共n2个整数组成。个整数组成。MATLAB提供了求魔提供了求魔方矩阵的函数方矩阵的函数magic(n),其功能是生成一个,其功能是生成一个n阶魔方阵。阶魔方阵。 例:例:magic(3) ans= 8 1 63 5 74 9 23.1.2 Matlab的矩阵表示的矩阵表示万达摩(万达摩(vander)方阵)方阵最后一列全为最后一列全为1,倒数第二列为一个指定的向量,其他各列是,倒数第二列为一个指定的向量,其他各列是其后列与倒数第二列的点乘积。可以用一个指定向量生成一个其后列与倒数第二列的点乘积。可以用一个指定向量生成一个万达摩矩阵。在万达摩矩阵。在MATLAB中,函数中,函数van
9、der(V)生成以向量生成以向量V为为基础向量的万达摩矩阵。基础向量的万达摩矩阵。 例:例:vander(1;2;3;5) ans=1 1 1 18 4 2 127 9 3 1125 25 5 1 3.1.2 Matlab的矩阵表示的矩阵表示 托普利兹矩阵托普利兹矩阵除第一行第一列外,其他每个元素都与左上角的元素相同除第一行第一列外,其他每个元素都与左上角的元素相同。生成托普利兹矩阵的函数是。生成托普利兹矩阵的函数是toeplitz(x,y),它生成一个以,它生成一个以x为第一列,为第一列,y为第一行的托普利兹矩阵。这里为第一行的托普利兹矩阵。这里x, y均为向均为向量,两者不必等长。量,两者
10、不必等长。toeplitz(x)用向量用向量x生成一个对称的托生成一个对称的托普利兹矩阵。普利兹矩阵。例例 toeplitz(1:3) ans 1 2 3 2 1 2 3 2 13.1.2 Matlab的矩阵表示的矩阵表示 伴随矩阵伴随矩阵MATLAB生成伴随矩阵的函数是生成伴随矩阵的函数是compan(p),其中,其中p是一个是一个多项式的系数向量,高次幂系数排在前,低次幂排在后。多项式的系数向量,高次幂系数排在前,低次幂排在后。例:例: 求多项式的求多项式的 的伴随矩阵,可用命令:的伴随矩阵,可用命令: p=1,0,-7,6; compan(p) ans= 0 -7 6 1 0 0 0 1
11、 0376xx-+-+3.1.2 Matlab的矩阵表示的矩阵表示 零矩阵零矩阵(1) 建立一个建立一个33零矩阵。零矩阵。 zeros(3) (2) 建立一个建立一个32零矩阵。零矩阵。 zeros(3,2) (3) 设设A为为23矩阵,则可以用矩阵,则可以用zeros(size(A)建立一个建立一个 与矩阵与矩阵A同样大小零矩阵。同样大小零矩阵。A=1 2 3;4 5 6; %产生一个产生一个23阶矩阵阶矩阵Azeros(size(A) %产生一个与矩阵产生一个与矩阵A同样大小的零矩阵同样大小的零矩阵3.1.2 Matlab的矩阵表示的矩阵表示 随机矩阵随机矩阵:(1) 在区间在区间20,
12、50内均匀分布的内均匀分布的5阶随机矩阵。阶随机矩阵。(2) 均值为均值为0.6、方差为、方差为0.1的的5阶正态分布随机矩阵。阶正态分布随机矩阵。 命令如下:命令如下:x=20+(50-20)*rand(5)y=0.6+sqrt(0.1)*randn(5)3.1.2 Matlab的矩阵表示的矩阵表示多维数组 命令 cat() 格式 A=cat(n,A1,A2,) n=1时,按A1;A2;A3构造 n=2时,按A1,A2,A3构造 n=3时,构造如图3-1。测量矩阵维数 size()矩阵维数 length()矩阵各维数最大值3.1.2 Matlab的矩阵表示的矩阵表示字符串变量及其处理 输入的
13、字符串要用单引号括起来。每个字符占用一个元素位置。 例:s=Hello s= Hello abs(s): 将字符串转成ASCII码。 setstr(v):将v向量转成字符串。3.1.2 Matlab的矩阵表示的矩阵表示假定有两个矩阵A和B矩阵转置:B=A矩阵加减运算(维数相同的两个矩阵,或其中之一为标量)A+B A-BA+2 A-2矩阵乘法(维数匹配的两个矩阵,或其中之一为标量) 若A为mn矩阵,B为np矩阵,则C=A*B为mp矩阵。矩阵除法两种矩阵除法运算:和/,分别表示左除和右除。如果A矩阵是非奇异方阵,则AB和B/A运算可以实现。AB等效于A的逆左乘B矩阵,也就是inv(A)*B,而B/
14、A等效于A矩阵的逆右乘B矩阵,也就是B*inv(A)。一般ABB/A。3.2 基本运算与输入输出基本运算与输入输出3.2.1 代数运算代数运算矩阵的乘方 一个矩阵的乘方运算可以表示成Ax,要求A为方阵,x为标量。点运算 在MATLAB中,有一种特殊的运算,因为其运算符是在有关算术运算符前面加点,所以叫点运算。点运算符有.*、./、.和.。两矩阵进行点运算是指它们的对应元素进行相关运算,要求两矩阵的维数相同。矩阵翻转 rot90(A), 矩阵A逆时针翻转90度; flipup(A),矩阵A上下翻转; fliplr(A),矩阵A左右翻转;3.2.1 代数运算代数运算六种逻辑运算 逻辑与: &
15、;, and() 逻辑或: |, or() 逻辑非: , not() 逻辑异或: xor() 先决逻辑与: & 先决逻辑或: |注意: 逻辑运算中,矩阵元素非0即1 逻辑与、或、异或操作中的两个矩阵维数相同或其中之一为标量。3.2.2 逻辑运算逻辑运算六种关系运算 小于: 不大于: 不大于:= 等于:= 不等于:=运算规则 当两个比较量是标量时当两个比较量是标量时,直接比较两数的大小。若关系成立,关系表达式结果为1,否则为0。 当参与比较的量是两个维数相同的矩阵时当参与比较的量是两个维数相同的矩阵时,比较是对两矩阵相同位置的元素按标量关系运算规则逐个进行,并给出元素比较结果。最终的关系
16、运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。 当参与比较的一个是标量,而另一个是矩阵时当参与比较的一个是标量,而另一个是矩阵时,则把标量与矩阵的每一个元素按标量关系运算规则逐个比较,并给出元素比较结果。最终的关系运算的结果是一个维数与原矩阵相同的矩阵,它的元素由0或1组成。3.2.3 关系运算关系运算1. find: 寻找逻辑值的向量元素下标2. all: 逻辑条件是否全部非零3. any: 逻辑条件是否任何一个非零4. exist: 检查某变量是否存在5. isnan: 检查是否为非数值量6. finite: 检查是否无穷大7. isempty: 检查是否为空8. isst
17、r: 检查是否为字符串9. strcmp: 比较字符串3.2.3 关系运算关系运算基本数学函数3.2.4 矩阵元素的数据变换矩阵元素的数据变换abs: 绝对值或复数的模floor:向负方向取整angle: 相位角ceil:向正方向取整sqrt: 平方根sign:符号函数real: 实部rem:求余函数imag: 虚部exp:指数函数conj: 共轭复数log: 自然对数round: 四舍五入取整log10:常用对数fix: 截尾取整三角函数sin: 正弦sinh:双曲正弦cos: 余弦cosh:双曲余弦tan: 正切tanh:双曲正切asin: 反正弦asinh:反双曲正弦acos: 反余弦a
18、cosh:反双曲余弦atan: 反正切atanh:反双曲正切atan2: 双值反正切3.2.4 矩阵元素的数据变换矩阵元素的数据变换特殊函数bessel: 贝塞尔函数gamma: 函数rat: 有理逼近erf: 误差函数inverf: 反误差函数elipk: 第一种完全的椭圆积分elipj: 雅可比椭圆函数3.2.4 矩阵元素的数据变换矩阵元素的数据变换输入函数input,格式如下 A=input(提示字符串) A=input(提示字符串,s) 前者要求用户输入矩阵,后者要求用户输入字符串输出函数disp,格式如下 A=1 2; 3 4 disp(A) A 前者不显示变量名,没有无用的空行;后
19、者将结果全部显示出来。3.2.5 输入输出语句输入输出语句for 循环语句循环语句 for语句的格式为:语句的格式为: for 控制变量控制变量=表达式表达式 语句集语句集 end注:注:表达式是一个矩阵,矩阵的列被依次赋给控制变量,每赋一个新值表达式是一个矩阵,矩阵的列被依次赋给控制变量,每赋一个新值,便执行一次循环体。,便执行一次循环体。 通常表达式形式是通常表达式形式是 s1:s3:s2,它的每一列为一个标量。如果表达式关它的每一列为一个标量。如果表达式关系不合理,内部循环体不执行。系不合理,内部循环体不执行。 循环结构可嵌套使用。循环结构可嵌套使用。3.3 程序流程语句程序流程语句3.
20、3.1 循环语句循环语句例例: 已知已知 ,当,当n=100时,求时,求y的值。的值。 程序如下:程序如下: y=0; n=100; for i=1:1:n y=y+1/(2*i-1); end y1121niyi3.3.1 循环语句循环语句while 语句语句 格式为:格式为: while 表达式表达式 语句集语句集 end 只要表达式的值不为只要表达式的值不为0,语句集里的语句就不断被执行。,语句集里的语句就不断被执行。3.3.1 循环语句循环语句例例: 从键盘输入若干个数,当输入从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它时结束输入,求这些数的平均值和它们之和。们之和。程
21、序如下:程序如下:sum=0;sum=0;cnt=0;cnt=0;val=input(Enter a number (end in 0):);val=input(Enter a number (end in 0):);while (val=0)while (val=0) sum=sum+val; sum=sum+val; cnt=cnt+1; cnt=cnt+1; val=input(Enter a number (end in 0):); val=input(Enter a number (end in 0):);endendif (cnt 0)if (cnt 0) sum sum mean
22、=sum/cnt mean=sum/cntendend3.3.1 循环语句循环语句单分支单分支if语句语句if 条件条件 语句组语句组end 当条件成立时,则执行语句组,执行完之当条件成立时,则执行语句组,执行完之后继续执行后继续执行if语句的后继语句,若条件不语句的后继语句,若条件不成立,则直接执行成立,则直接执行if语句的后继语句。语句的后继语句。3.3.2 条件转移语句条件转移语句双分支双分支if语句语句if 条件条件 语句组语句组1else 语句组语句组2end 当条件成立时,执行语句组当条件成立时,执行语句组1,否则执行语,否则执行语句组句组2,语句组,语句组1或语句组或语句组2执行
23、后,再执行执行后,再执行if语句的后继语句。语句的后继语句。3.3.2 条件转移语句条件转移语句 例例: 计算分段函数的值计算分段函数的值22, 0,ln(1), 0.2xxeyxxx若若程序如下:程序如下:x=input(请输入请输入x的值的值:);if x=A & c=a& c=0& c=9 disp(abs(c)-abs(0);else disp(c);end3.3.2 条件转移语句条件转移语句switch语句语句 switch语句根据表达式的取值不同语句根据表达式的取值不同, 分别执行不同的语分别执行不同的语, 其语句格式为:其语句格式为: switch 表达式表达式 case 表达式表达式1 语句组语句组1 case 表达式表达式2 语句组语句组2 case 表达式表达式m 语句组语句组m otherwise 语句组语句组n end3.3.3 开关语句开关语句例例 某商场对顾客所购买的商品实行打折销售,标准如某商场
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 关于2026年供应商质量管理体系改进的通知(7篇)范文
- 基于TRIZ理论与人工智能的智康姿态分析系统设计与实现
- 智慧启航诚信导向:小学诚信与智慧主题班会课件
- 电子竞技行业营销及广告推广计划
- 文件归档流程标准化指南
- 活动帐篷起火初期灭火负责人预案
- 2026清华附中天府学校第二轮考核招聘事业单位人员13人(四川)笔试题库附完整答案详解(夺冠)
- 智能会议系统会议记录管理指南
- 2026广东肇庆学院第一批招聘高层次和紧缺人才2人参考题库及答案详解【各地真题】
- 科学预防感染线守护身心健康阳光万里小学主题班会课件
- 铁路装卸安全课件
- 麻袋装填护坡施工方案
- 销售配件管理制度大全
- 中暑热衰竭电解质紊乱护理查房
- DGTJ08-2240-2017 道路注浆加固技术规程
- 药品技术转移管理制度
- 【鄂尔多斯】2024年内蒙古鄂尔多斯职业学院人才引进39人笔试附带答案详解
- 2024衡阳蒸湘区中小学教师招聘考试试题及答案
- DB32-T 4910-2024 大水面生态渔业资源监测与资源量评估技术规范 湖泊与水库
- DB52T 1161-2016 贵州省旅游购物场所等级划分与评定
- NB-T35026-2022混凝土重力坝设计规范
评论
0/150
提交评论