MATLAB教学教案第2章.ppt_第1页
MATLAB教学教案第2章.ppt_第2页
MATLAB教学教案第2章.ppt_第3页
MATLAB教学教案第2章.ppt_第4页
MATLAB教学教案第2章.ppt_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

第2章MATLAB运算基础 2 MALAB7 X程序设计 2 74 2 4稀疏数组 2 4 1数组元素的存储数组元素有完全存储方式和稀疏存储方式两种存储方式 MALAB7 X程序设计 3 74 2 4 2稀疏数组的建立 1转换函数 转换函数sparse的格式为 A sparse S 功能 将矩阵S转化为稀疏存储方式的矩阵A 当矩阵S是稀疏存储方式时 则函数调用相当于A S MALAB7 X程序设计 4 74 sparse m n 功能 生成一个m n的所有元素都是0的稀疏矩阵 sparse u v S 功能 建立一个max u 行 max v 列并以S为稀疏元素的稀疏矩阵 其中u v S是3个等长的向量 S是要建立的稀疏矩阵的非0元素 u i v i 分别是S i 的行和列下标 MALAB7 X程序设计 5 74 转换函数full的格式为 full A 功能 返回和稀疏存储矩阵A对应的完全存储方式矩阵 MALAB7 X程序设计 6 74 例2 28演示sparse和full的功能 u 1 4 v 3 6 S 0 10 20 30 4 spa sparse u v S a full spa MALAB7 X程序设计 7 74 2生成函数 稀疏矩阵的生成函数 spconvert spdiags speyespconvert函数的格式为 B spconvert A 功能 将矩阵A所描述的一个稀疏矩阵转化为一个稀疏存储矩阵B MALAB7 X程序设计 8 74 例2 29演示spconvert的功能 A 123 345 678 B spconvert A 生成实数数组A 1234 3456 6789 B spconvert A 生成复数数组 MALAB7 X程序设计 9 74 spdiags的格式为 A spdiags B d m n 功能 返回带状稀疏矩阵A 参数m n为原带状矩阵的行数与列数 B为r p阶矩阵 这里r min m n p为原带状矩阵所有非零对角线的条数 矩阵B的第i列即为原带状矩阵的第i条非零对角线 d为长度为p的向量 MALAB7 X程序设计 10 74 例2 30演示spdiags的功能 B 0 100 00 20 000 3 m 3 n 4 d 12 A spdiags B d m n MALAB7 X程序设计 11 74 函数eye rand和randn产生完全存储方式的矩阵 对应的稀疏矩阵函数是speye sprand和sprandn MALAB7 X程序设计 12 74 例2 31分析下列语句的功能 spa speye 4 4 建立4 4的稀疏存储单位矩阵spa 2 1 2 增加元素spa 2 1 spa 2 2 0 删除元素spa 2 2 MALAB7 X程序设计 13 74 2 5矩阵和数组的运算 矩阵运算规则是按照矩阵作为运算要素定义的 数组运算是按照矩阵元素作为运算要素定义的 标量运算是矩阵和数组的运算的特例 MALAB7 X程序设计 14 74 2 5 1矩阵和数组的算术运算 1矩阵和数组的加减运算两个矩阵必须同型时才可以进行加减运算 如有一个是标量 则该标量与矩阵的每个元素进行加减运算 数组的加减运算法则与矩阵的加减运算法则相同 MALAB7 X程序设计 15 74 例2 32设求A 2B 方法1 A 4 31 205 B 120 103 A 2 B方法2 A 4 31 205 B 120 103 b uminus 2 B 返回2 B的相反数A b MALAB7 X程序设计 16 74 2矩阵和数组的乘法运算 矩阵的乘法运算符为 定义为 设A aij m s B bij s n 则A与B的乘积C AB cij m n是m n矩阵 其中cij i 1 2 m j 1 2 n 等于A的第i行与B的第j列对应元素的乘积之和 数组的乘法运算符为 两个矩阵必须同型时才可以进行数组乘法运算 运算规则为 矩阵A和B中的对应元素相乘 如果参加运算的矩阵其中有一个是标量时 矩阵和数组的乘法运算均为标量与矩阵的每个元素进行乘法运算 MALAB7 X程序设计 17 74 例2 33求乘积AB和BA A 103 210 B 41 11 20 A B B A MALAB7 X程序设计 18 74 例2 34求 AB T和BT AT T为转置运算 A 1 12 201 B 2 10 113 421 A B B A MALAB7 X程序设计 19 74 3矩阵和数组的除法运算 矩阵除法运算的运算符为 和 分别表示左除和右除 矩阵除法的定义为 A B A 1 BA B A B 1其中A 1和B 1是矩阵A和B的逆 矩阵B的逆也可用函数inv求得 MALAB7 X程序设计 20 74 除法运算的运算符为 和 分别数组为数组的左除和右除 表示数组的相应元素相除 两个矩阵必须同型时才可以进行数组除法运算 定义为 设A aij m n B bij m n 则数组的右除为C cij m n aij bij m n 数组的左除为C cij m n bij aij m n MALAB7 X程序设计 21 74 例2 35求解方程组 A 22 11 43 12 83 34 33 2 2 b 46126 X A b 等价语句为X inv A b MALAB7 X程序设计 22 74 2 5 2矩阵和数组的乘方运算 矩阵乘方运算的运算符为 运算表达式为A B 矩阵乘方运算的含义是 A B表示方阵A自乘B次 数组乘方运算的运算符为 运算表达式为A B 其中A和B都可以是矩阵或标量 MALAB7 X程序设计 23 74 数组乘方运算有下列形式 当A为矩阵 B为正整数时 则将aij自乘B次 当A为矩阵 B也为矩阵时 A和B矩阵必须同型 则将aij自乘bij次 当A为正整数 B为矩阵时 将A bij构成新矩阵的第i行第j列元素 其中aij和bij分别表示矩阵A和B的第i行第j列元素 MALAB7 X程序设计 24 74 2 5 3矩阵和数组的数学函数 常用的数学函数有三角函数 指数函数和整值函数等 需要注意的是 MATLAB6 5以前的版本三角函数的自变量和反三角函数的返回值为弧度 MATLAB7 0版本中提供了三角函数的自变量和反三角函数的返回值分别为角度和弧度的两类函数 MALAB7 X程序设计 25 74 例2 36求30 60 和90 的正弦 余弦 正切和余切函数值 x 30 30 90 sind x cosd x tand x cotd x 三角函数的自变量为角度值 MALAB7 X程序设计 26 74 例2 37求0 1 0 2 0 3 0 4 0 5 0 6的反正弦 反余弦和反正切值 x 0 1 0 1 0 6 asin x acos x atan x 返回值为弧度asind x acosd x atand x 返回值为角度 MALAB7 X程序设计 27 74 例2 38求1到10的自然对数和常用对数 x 1 10 log x 返回值为自然对数log10 x 返回值为常用对数如果求2为底的对数呢 log10 x log10 2 MALAB7 X程序设计 28 74 2 6字符串 2 6 1字符串的定义 MATLAB将字符串当作一个行向量 每个元素对应一个字符 一个字符占两个字节 并且每一字符 包括空格 以其ASCII码的形式存放 其标识方法和数值向量相同 MALAB7 X程序设计 29 74 例2 39建立任意的两个字符串 并查看字符串占用的字节信息 s1 NortheastForestUiversity 赋值方式建立字符串s1s2 HaerbinHeilongjiang 赋值方式建立字符串s2whos 查看字符串占用的字节信息 MALAB7 X程序设计 30 74 常用的字符串函数 length计算字符串的长度 即组成字符的个数 class判断某一个变量是否为字符串 返回char则表示为字符串findstr寻找在某个长字符串中的子字符串 返回其起始位置deblank删除字符串尾部的空格eval以表达式方式执行字符串disp显示字符串的内容 MALAB7 X程序设计 31 74 2 6 2字符串的连接和替换 strcat S1 S2 S3 功能 返回S1 S2 S3的连接字符串 常用的字符串的连接和替换函数 strvcat T1 T2 T3 功能 返回T1 T2 T3 的垂直连接字符串 strmatch S1 S2 功能 在逐行搜索字符串s2 给出以s1开头的那些行的行号 strrep S1 S2 S3 功能 把字符串s1的所有出现s2的地方替换为s3 strtok S 功能 查找字符串S的第一个间隔符 空格符 指表符 回车符 前的内容 MALAB7 X程序设计 32 74 例2 40分析下列语句的执行结果 test Thisisatest position findstr test is array strvcat maxarray minvalue maxvalue result 1 strmatch max array result 2 strrep test test pest token remainder strtok Thisisatest MALAB7 X程序设计 33 74 2 6 3字符串比较函数 strcmp S1 S2 功能 比较字符串是否相等 如果相同则返回1 否则为0 常用的字符串比较函数 strcmpi S1 S2 功能 在忽略大小写的情况下 比较字符串是否相等 如果相同则返回1 否则为0 strncmp S1 S2 N 功能 比较两个字符串的前n个字符是否相等 如果相同则返回1 否则为0 strncmpi S1 S2 N 功能 在忽略大小写的情况下 比较字符串的前n个字符是否相等 如果相同则返回1 否则为0 MALAB7 X程序设计 34 74 例2 41分析下列语句的执行结果 str1 hello str2 Hello str3 help c1 strcmp str1 str2 c2 strcmpi str1 str2 c3 strncmp str1 str3 2 c4 strncmpi str1 str3 2 MALAB7 X程序设计 35 74 2 6 4字符串转换函数 upper A 功能 把字符串A中的任一小写字母转换为相应的大写字母 常用的字符串转换函数 lower A 功能 把字符串A中的任一大写字母转换为相应的小写字母 double X 功能 转换字符串X为ASCII码 char X 功能 将ASCII码X转换为字符串 MALAB7 X程序设计 36 74 int2str X 功能 将整数X转换为字符串 num2str X 功能 将数值X转换成字符串 mat2str MAT 功能 将数值矩阵MAT转换为可执行的形式 MALAB7 X程序设计 37 74 例2 42分析下列语句的功能 x 5317 y int2str x p num2str pi 7 p num2str pi 10 5e a 123 456 b mat2str a str sprintf Thevalueofpi 8 6f pi MALAB7 X程序设计 38 74 2 7元胞数组 2 7 1元胞数组的建立元胞数组 一个数组里存放各种不同类型的数据 元胞数组中的基本组成是元胞 每一个元胞是用来存放各种不同类型的数据的单元 如果元胞中存放的数据为元胞数组 则为元胞数组的嵌套使用 MALAB7 X程序设计 39 74 1赋值语句 赋值语句的右边为用符号 标记的不同类型的数据 例2 43建立元胞数组 并查看元素的信息 a Thisisthefirstexample hadamard 2 ones 3 North East MALAB7 X程序设计 40 74 查看a的各个元素的信息 a 1 1 a 1 2 a 2 1 a 2 2 MALAB7 X程序设计 41 74 例2 44用为各元胞元素赋值的方法创建元胞数组 b 1 1 Thisisthesecondexample b 1 2 hilb 3 b 2 1 zeros 2 b 2 2 South West b 查看b的内容 MALAB7 X程序设计 42 74 2由各元胞元素赋值创建 创建元胞数组的函数为 cell N 创建空的N N的元胞数组cell M N 或cell M N 创建空的M N的元胞数组 MALAB7 X程序设计 43 74 例2 45由各元胞元素赋值创建元胞 c cell 2 c 1 1 Thisisthethirdexample c 1 2 compan 103 c 2 1 3 4 i 5 10 i3 4 i c 2 2 元胞数组的第四个元素为空矩阵C 查看c的内容 MALAB7 X程序设计 44 74 显示元胞数组的内容的函数 celldisp C 功能 显示元胞数组C的所有元素的内容 celldisp cellplot和cellfun cellplot C 功能 以嵌套的格子的形式显示元胞数组C的所有元素的结构 d cellfun fun c 功能 返回判断元胞数组c的元素数据类型和基本信息的数组d 其中fun为isreal isempty islogical length ndims和prodofsize MALAB7 X程序设计 45 74 2 7 2转换函数 M cell2mat C 功能 元胞数组转换为单精度矩阵 其中C为多维元胞数组 M为转换后得到的单精度矩阵 要求输入的元胞数组元素必须是同类型的数据 元胞数组与其他数组的转换函数 cell2mat mat2cell和num2cell C mat2cell X M N 功能 矩阵分解为元胞数组 其中X为多维元胞数组 C为转换后得到的矩阵 C num2cell A 功能 转换数值数组为元胞数组 其中A为数值数组 C为转换得到的元胞数组 MALAB7 X程序设计 46 74 例2 46元胞数组与其他数组的转换 x 1 234 5 9 678 10112 cell2mat x 转换数值数组为单精度矩阵 MALAB7 X程序设计 47 74 X zeros 3 4 5 C mat2cell X 12 13 矩阵分解为元胞数组A 1234 5678 9101112 C num2cell A 转换数值数组为元胞数组 MALAB7 X程序设计 48 74 2 7 3元胞数组的使用 1直接引用元胞数组的元素的引用可通过指出数组名称直接引用 元胞数组中可以引用的元素为元胞数组的结构 元胞数组的内容 元胞数组的部分元素 MALAB7 X程序设计 49 74 例2 47演示元胞数组的直接引用方法 a Thisistheforthexample magic 3 ones 3 North East a 1 2 查看a 1 2 的结构a 1 2 查看a 1 2 元胞的内容a 1 2 1 引用a 1 2 元胞的第1个元素a 1 2 12 引用a 1 2 元胞的第1 2个元素 MALAB7 X程序设计 50 74 2扩展元胞数组 例2 48演示元胞数组的扩展方法 a 3 3 5 扩展a为3 3的数组 a 3 3 为元胞 内容为5 MALAB7 X程序设计 51 74 3删除元胞数组 例2 49演示元胞数组的删除方法 a 3 3 删除a的第三行 第三列元素a 3 删除a的第三列元素 MALAB7 X程序设计 52 74 2 8构架数组 2 8 1构架数组的建立 构架数组的基本组成是域 每一个域是用来存放各种不同类型的数据的单元 构架数组的建立也有三种方法 赋值语句 创建函数和转换函数 MALAB7 X程序设计 53 74 1赋值语句 例2 50使用赋值语句依次为各个域赋值的方法建立构架数组 存储两名学生的名字 学号 性别 班级信息 s name WangMing s number 19990101 s sex man s class 199901 MALAB7 X程序设计 54 74 如查看构架数组的内容 语句为 s如查看构架数组的某一个域内容 语句为 s name MALAB7 X程序设计 55 74 s 2 name ZhangLe s 2 number 19990201 s 2 sex man 构架数组的第二个元素可以被通过增加下标实现 如查看构架数组的各个域名 语句为 s MALAB7 X程序设计 56 74 可通过下面的语句查看s的内容 s 1 s 2 MALAB7 X程序设计 57 74 2创建函数 使用struct函数可以建立构架数组 格式为 S struct field1 VALUES1 field2 VALUES2 功能 创建构架数组S 其中 field1 的值赋为VALUES1 field2 的值赋为VALUES2 MALAB7 X程序设计 58 74 例2 51应用struct函数可以创建例2 50的构架数组 s struct name WangMing number 19990101 class 199901 sex man MALAB7 X程序设计 59 74 3转换函数 元胞数组转换为构架数组的函数为cell2struct 格式为 S cell2struct C FIELDS DIM 功能 元胞数组C转换为构架数组S 其中FIELDS为字符串数组或元胞数组 DIM为元胞数组的维数 MALAB7 X程序设计 60 74 例2 52应用cell2struct函数可以创建同上的构架数组 c ZhangMing 19990102 femal 199901 f name number sex class s cell2struct c f 2 MALAB7 X程序设计 61 74 2 8 2域的增加和删除 1获取域名构架数组创建后可通过函数fieldnames获取构架数组的域 格式为 NAMES fieldnames S 功能 返回构架数组S的域名构成的元胞数组NAMES MALAB7 X程序设计 62 74 例2 53给出构架数组s的全部域名 NAMES fieldnames s MALAB7 X程序设计 63 74 2增加和删除域 构架数组建立后 允许增加和删除域 构架数组的域的删除可通过函数rmfield实现 格式为 S rmfield S field 功能 从构架数组S中删除域 field MALAB7 X程序设计 64 74 例2 54演示通过赋值语句增加域的方法 在已建立的构架数组s的基础上 增加课程成绩域exams 三门功课 并删除s的域sex s 2 exams 908288 增加s的域exams 并通过赋值语句为s 2 赋值s 1 查看s 1 1 的详细信息s 2 查看s 1 2 的详细信息s2 rmfield s sex 删除s的域sex MALAB7 X程序设计 65 74 2 8 3构架数组元素的引用 构架数组的元素的引用可通过指出数组名称 下标 域名直接引用 例2 55演示构架数组元素的引用方法 s 1 numbers 2 number 引用number元素s 2 exams 引用exams元素 并求其平均值 MALAB7 X程序设计 66 74 averge s 2 exams 1 s 2 exams 2 s 2 exams 3 3 求平均值s 2 aver averge 增加aver域 并赋值为平均值这时s成为1x2构架数组 并有域name number class exams和aver MALAB7 X程序设计 67 74 2 8 4getfield和setfield函数 函数getfield的格式为 F getfield S i j field k 功能 获取构架数组的指定的域的域值 其中S是构架数组名 i j 用来指定元素构架的下标 field 是指定的域名 必须是字符串 k 用来指定域中数组的下标 MALAB7 X程序设计 68 74 函数setfield的格式为 S setfield S field V S SETFIELD S i j field k V 功能 设置构架数组的指定的域的域值 其中S是构架数组名 i j 用来指定构架数组元素的下标

温馨提示

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

最新文档

评论

0/150

提交评论