matlab7从入门到精通.ppt_第1页
matlab7从入门到精通.ppt_第2页
matlab7从入门到精通.ppt_第3页
matlab7从入门到精通.ppt_第4页
matlab7从入门到精通.ppt_第5页
免费预览已结束,剩余389页可下载查看

下载本文档

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

文档简介

MATLAB7 0从入门到精通 主要讲述内容 第1章MATLAB简介第2章数值运算第3章单元数组和结构第4章字符串第5章符号运算第6章MATLAB绘图基础第7章程序设计第8章计算方法的MATLAB实现第9章优化设计第10章Simulink仿真初探 第1章MATLAB简介 MATLAB是一种高效能的 用于科学和技术计算的计算机语言 它将计算 可视化和编程等功能集于一个易于使用的环境 MATLAB是一个交互式系统 写程序与执行命令同步 其基本的数据元素是没有维数限制的阵列 因此采用MATLAB编制包含矩阵和向量问题的程序时比采用只支持标量和非交互式的编程C或FORTAN语言更加方便 MATLAB的全名是MatrixLaboratory 意思是矩阵实验室 是由MathWorks公司推出的 1 1概述 MATLAB语言的优点 1 简单易学 2 代码短小高效 只需熟悉算法特点 使用场合 函数调用格式和参数意义 不必花大量时间纠缠具体算法 3 计算功能非常强大 4 强大的图形表达功能 5 可扩展性能 MATLAB的一个重要特色 它有一套程序扩展系统和一组称之为工具箱 toolbox 的特殊应用子程序 工具箱是MATLAB函数的子程序库 每一个工具箱都是为某一类学科专业和应用而定制的 主要包括信号处理 控制系统 神经网络 模糊逻辑 小波分析和系统仿真等方面的应用 MATLAB提供两种运行方式 命令行方式和M文件方式 具体情况见下面的两幅图 1 2运行环境 命令窗口左侧是工作空间窗口 其中包括变量名 变量数组大小 变量字节大小和变量类型 双击该变量会出现该变量的详细信息 命令历史窗口显示所有执行过的命令 可以双击再次执行 当前目录窗口显示当前目录下所有文件类型和最后修改时间 1 3MATLAB7 0的通用命令 1 4MATLAB的帮助系统 命令行中输入help 列出所有函数类别和工具箱的名称和功能 命令行中输入help 工具箱名或函数名 可以显示对应的功能信息 单击工具条上的问号按钮或单击Help菜单中的MATLANHelp项 可以打开联机帮助窗口 helpdesk和helpwin或doc产生联机帮助 单击Help菜单中的Demos项或直接在命令窗口输入Demos 可以进行演示 lookfor函数的用法 lookfor 关键字 这样可以避免新学者不知道函数名而束手无策 1 4MATLAB的帮助系统 第2章数值运算 首先matlab中支持复数 表示方法为a m ni j 当n是表达式时 n与i j 之间必须要加乘号 另外也可以用complex x y 来产生复数 i j不要作为变量名称 以免生成数据时发生误解 2 1MATLAB中的变量 a 1 2ia 1 0000 2 0000i a 1 2 ia 1 0000 2 0000i b sin 2 cos 2 i b sin 2 cos 2 i Error UnexpectedMATLABexpression b sin 2 cos 2 ib 0 9093 0 4161i x sin 2 y cos 3 z complex x y z 0 9093 0 9900i z complex x z 0 9093 i 2ians 0 3 0000i i 2 ians 0 3 0000i i 10 i 2ians 10 0000 2 0000i i 2 ians 30 5 2ians 5 0000 2 0000i 5 2 ians 25 MATLAB中的变量必须以字母打头 之后可以是任意字母 数字或下划线 变量名区分字母大小写 变量名不超过19个字符 默认变量名为ans 除此之外还包含一些特殊的变量 Whos命令能够显示变量的信息 2 2MATLAB的数值运算基础 A B相当于B inv A A B相当于inv A B 2 3数组及向量运算 1 数组构造数组及向量的生成可直接在方括号内输入数据 也可以不加括号 同样生成数组 1 利用first increment last来创建等差数组 a first increment last increment为增量 a 0 0 5 2 a 00 50001 00001 50002 0000 2 利用MATLAB函数linspace来创建数组 形成一个等差数列关系的数组 number为数组个数linspace firstvalue lastvalue number a linspace 0 2 5 a 00 50001 00001 50002 0000 3 利用logspace函数来创建一个对数分隔的数组 形成一个等比数列关系的数组 logspace firstvalue lastvalue number 数值从10的firstvalue次幂到10的lastvalue次幂结束 a logspace 0 2 5 a 1 00003 162310 000031 6228100 0000 2 数组运算 1 数组与标量的四则运算是指数组中的每个元素与标量进行加 减 乘 除运算 数组的指数运算exp 以2为底的指数运算pow2 自然对数运算log 常用对数运算log10 以2为底的对数运算log2 开方运算sqrt 是数组中每个元素进行相对应的运算 2 数组与数组之间进行运算时 每个数组必须具有相同的维数 且必须用点乘或点除 查询x数组的第n个元素 x n 查询x数组的第2到4个元素 x 2 4 查询x数组的第4到最后1个元素 x 4 end 查询x数组的第3 2 1个元素 x 3 1 1 查询x数组的小于n元素 x find x n 查询x数组的第4 2 5个元素 x 425 将x数组的第n个元素赋值为A x n A 查询数组A的第2行 第3列的元素 A 2 3 查询数组A的第3行所有的元素 A 3 查询数组A的第2列转置后所有的元素 A 2 数组排序 sort x 命令将数组x中的元素按升序排列 当x是多维数组时 命令是将x中各列元素按升序排列 当x是一个字符型单元数组 命令是将x中的元素按ASC 码升序排列 当x数据类型是复数 命令将按各元素的模升序排列 y sort x mode 中 mode决定排序方式 选择ascend将按升序排列 选择descend将按降序排列 y与x保持相同大小 3 向量运算在高等数学中 向量的点积是指两个向量在其中某一向量方向上的投影的乘积 它通常来定义向量的长度 是个数值 c dot a b 表示向量a与b的点积放在c中 a与b长度必须相同 在高等数学中 向量的叉积是过两个向量的交点并且与这两个向量所在平面相垂直的向量 是个向量 c cross a b 表示向量a与b的叉积放在c中 a与b必须是三个元素的向量 生成的仍然是一个三维的向量 2 4矩阵及其运算 1 矩阵的生成和基本操作矩阵的生成通常有四种方法 1 在命令窗口中直接输入矩阵 2 通过语句和函数产生矩阵 3 在M文件中建立矩阵 4 从外部的数据文件中导入矩阵 求方阵行列式的函数是det determinant 求矩阵秩的函数是rank 求矩阵逆阵的函数是inv inversematrix size命令能测试矩阵的大小 2 矩阵与常数的四则运算矩阵与常数的四则运算是指矩阵各元素与常数之间的四则运算 但是矩阵与常数进行除法时 常数通常只能做除数 3 矩阵之间的四则运算矩阵与矩阵之间的加减法就是矩阵中各元素之间的加减运算 矩阵必须具有相同的维数 矩阵与矩阵之间的乘法与除法要符合矩阵之间的乘除法则 大小完全相同的方阵即可进行乘除运算 也可以进行点乘点除运算 但结果是不同的 矩阵的左除为矩阵乘法的逆运算 若AB C 则B A C 矩阵左除常用于解线性方程组AX B 矩阵的右除也为矩阵乘法的逆运算 若AB C 则A C B 4 矩阵的特征参数运算矩阵的指数运算expm 自然对数运算logm 开方运算sqrtm 其中矩阵必须是方阵 矩阵的特征值运算使用函数eig或eigs计算 条件数的值代表矩阵 病态 程度的大小 计算矩阵的条件数值cond a 计算1 范数矩阵条件值condest a 计算矩阵的逆条件数值rcond a 矩阵的奇异值一般通过函数svd a 和svds a 计算得到 矩阵范数运算norm a 矩阵1 范数运算norm a 1 矩阵2 范数运算norm a 2 矩阵无穷大范数运算norm a inf 矩阵F 范数运算norm a fro 矩阵中的秩用函数rangk a 求得 矩阵的正交化运算由函数orth a 得到 求矩阵对角线所有元素之和用trace a 计算 矩阵的伪逆运算pinv a 矩阵函数计算funm a fun a为矩阵 fun为调用函数名 函数名不带m 5 矩阵的分解运算三角分解 lu 高斯消去法又称LU分解 l u lu x 产生一个 心理 下三角矩阵 下三角矩阵和置换矩阵的乘积 l和一个上三角矩阵u 使x l u成立 x可以不是方阵 l u p lu x 产生一个单位下三角矩阵l 一个上三角矩阵u和交换矩阵p 使它们满足P x l u x 12 34 l u lu x l 0 33331 00001 00000u 3 00004 000000 6667 l u p lu x l 1 000000 33331 0000u 3 00004 000000 6667p 0110 正交分解 qr q r qr a 产生一个与a维数相同的上三角矩阵r和一个正交矩阵q q q 单位矩阵 使它们满足a q r q r e qr a 产生一个交换矩阵e 一个上三角矩阵r和正交矩阵q 使它们满足a e q r q r qr a 0 对矩阵a进行有选择的qr分解 当矩阵a为m n并且m n 则只产生具有前n列的正交矩阵q R qr a 只产生矩阵r 且满足r chol a a 特征值分解 eig v d eig x 命令生成两个矩阵v和d 其中v是以矩阵x的特征向量作为列向量组成的矩阵 d是由矩阵x的特征值作为主对角线元素构成的对角矩阵 它们满足x v v d v d eig a b 命令对矩阵a b作广义特征值分解 它们满足a v b v d Chollesky分解 chol 当矩阵a n n 对称正定时 则存在唯一的对角元素为正的上三角矩阵r 使得a r r 这既是Chollesky分解 奇异值分解 svd u s v svd x 命令产生一个与矩阵x维数相同的对角矩阵s 正交矩阵u和正交矩阵v 使它们满足x u s v u s v svd x 0 命令进行奇异值的最佳分解 X为m n阶矩阵 当m n时 生成的矩阵u只有前n列元素被计算出来 且s为n n阶矩阵 6 矩阵的一些特殊处理函数矩阵的变维reshape x m n 命令将矩阵x的所有元素分配到一个m n的新矩阵 当矩阵x的元素数不是m n时 返回错误信息 原则按列优先 reshape x m n p 和reshape x m n p 命令一样返回由矩阵x的元素组成的m n p 多维矩阵 元素个数必须相等 矩阵的变向rot90 a 命令返回矩阵a按逆时针旋转90度所得的矩阵 rot90 a k 命令返回矩阵a按逆时针旋转90 k度所得的矩阵 flipud x 命令将矩阵x上下翻转 fliplr x 命令将矩阵x左右翻转 flipdim x dim 命令将矩阵x的dim维翻转 选取数组上三角或下三角矩阵tril a k 命令的功能是提取矩阵的下三角矩阵 k为正数时 非零元素向右上角错k行 k为负数时 非零元素向左下角错k行 triu a k 命令的功能是提取矩阵的上三角矩阵 k为正数时 非零元素向右上角错k行 k为负数时 非零元素向左下角错k行 a 1234 2345 3456 4567 tril a ans 1000230034504567 a 1234 2345 3456 4567 triu a 1 ans 0234004500060000 triu a 1 ans 1234234504560067 a 1234 2345 3456 4567 triu a ans 1234034500560007 a 1234 2345 3456 4567 triu a 1 ans 0234004500060000 triu a 1 ans 1234234504560067 7 特殊矩阵的生成空矩阵 空矩阵用 表示 空矩阵大小为零 但变量名存在于工作空间 零矩阵 a zeros m n a zeros size b 其中b是已存在的矩阵 若a是方阵也可a zeros n 全1矩阵 a ones m n a ones size b 其中b是已存在的矩阵 若a是方阵也可a ones n 单位矩阵 a eye m n a eye size b 其中b是已存在的矩阵 若a是方阵也可a eye n 对角矩阵 对角矩阵指的是对角线上的元素为任意数 其它元素为零的矩阵 a diag v k 中 v是向量 k为向量v偏离主对角线的列数 k等于零时表示v为主对角线 k大于零时表示v在主对角线以上 k小于零时表示v在主对角线以下 a diag v 相当于a diag v 0 v 123 a diag v a 100020003 v 123 a diag v 1 a 0100002000030000 v 123 a diag v 2 a 0010000020000030000000000 v 123 a diag v 1 a 0000100002000030 v 123 a diag v 2 a 0000000000100000200000300 随机矩阵 随机矩阵是指矩阵元素由随机数构成的矩阵 rand n 命令生成n n阶随机矩阵 生成矩阵的元素值在区间 0 0 1 0 之间 rand m n 命令生成m n阶随机矩阵 生成矩阵的元素值在区间 0 0 1 0 之间 randn n 命令生成n n阶随机矩阵 生成矩阵的元素值在服从正态分布N 0 1 randn m n 命令生成m n阶随机矩阵 生成矩阵的元素值在服从正态分布N 0 1 魔方矩阵 魔方矩阵是个方阵 其每一行 每一列 每条主对角线的和都相等 2阶除外 A magic n 范德蒙德矩阵 a vender v 其中a i j v i n j 矩阵重组用新的行或列取代原有矩阵的行或列 a 123 456 543 b 111 222 333 b 1 a 1 b 123222333 b 2 a 1 b 113242353 从矩阵中选取子矩阵 a 123 456 543 a 123456543 b a 1 2 2 3 b 2356 将矩阵改成行向量或列向量 a 123 456 543 a 123456543 b a b 145254363 矩阵的水平连接用horzcat a b 或 a b a 12 34 b 56 78 a b ans 12563478 horzcat a b ans 12563478 矩阵的垂直连接用vertcat a b 或 a b a 12 b 34 a b ans 1234 vertcat a b ans 1234 矩阵的尺寸信息length命令是获取矩阵最长方向的长度 ndims命令是获取矩阵的维数 numel命令是获取矩阵的元素个数 size命令是获取矩阵大小信息 及几行几列 2 5稀疏矩阵 在MATLAB中用两种方式来存储矩阵 即满矩阵存储方式和稀疏矩阵存储方式 简称满矩阵和稀疏矩阵 满矩阵中所有的数值都要存储 会造成存储空间的浪费和计算速度的降低 而稀疏矩阵是以非零元素行标和列标来表示的 可以节省空间 也可以提高计算速度 1 稀疏矩阵的生成speye n 生成n阶单位稀疏矩阵 speye m n 也生成一个单位稀疏矩阵 其维数是m和n中较小的 注意 它所生成的矩阵仍然是m n的矩阵 它只是在显示主对角线上的元素 speye size a 生成与a大小相等的稀疏矩阵 主对角线上元素为1 其它为0 spones a 创建矩阵a中非零元素为1的稀疏矩阵 speye 3 ans 1 1 1 2 2 1 3 3 1 speye 3 1ans 211121112 speye 3 4 ans 1 1 1 2 2 1 3 3 1 speye 3 4 1ans 211112111121 speye 4 3 ans 1 1 1 2 2 1 3 3 1 speye 4 3 1ans 211121112111 a 123 456 a 123456 speye size a ans 1 1 1 2 2 1 speye size a 1ans 211121 2 稀疏矩阵与满矩阵的转换a sparse x 将满矩阵x转化为稀疏矩阵a a sparse i j s m n nzm 生成m n阶的稀疏矩阵a 向量s的元素分布在以向量i的对应值和向量j的对应值为坐标的位置上 nzm为给出的矩阵存储的非零元素的个数 不能小于s的长度 此时nzmax是返回用于存储非零值的空间长度 a sparse i j s m n 生成m n阶的稀疏矩阵a 向量s的元素分布在以向量i的对应值和向量j的对应值为坐标的位置上 其中nzmax length s x 12 34 x 1234 a sparse x a 1 1 1 2 1 3 1 2 2 2 2 4 x 10 30 x 1030 a sparse x a 1 1 1 2 1 3 s sparse 1 2 3 4 3 2 1 3 1 2 3 4 4 4 3 Errorusing sparseIndexexceedsmatrixdimensions s sparse 1 2 3 4 3 2 1 3 1 2 3 4 4 4 s 3 1 3 2 2 2 1 3 1 4 3 4 n nzmax s n 4 s sparse 1 2 3 4 3 2 1 3 1 2 3 4 4 4 8 s 3 1 3 2 2 2 1 3 1 4 3 4 n nzmax s n 8 a sparse i j s 生成m n阶的稀疏矩阵a 向量s的元素分布在以向量i的对应值和向量j的对应值为坐标的位置上 其中m max i n max j a sparse m n 就是a sparse m n 0 的简化形式 生成n阶稀疏方阵时必须用a sparse n n 不能用a sparse n s full x 将稀疏矩阵x转化为满矩阵S s full sparse 1 2 3 4 3 2 1 3 1 2 3 4 s 001020300004 s sparse 1 2 3 4 3 2 1 3 1 2 3 4 5 5 1s 1121113111411111151111111 s sparse 5 5 s Allzerosparse 5 by 5 a sparse 5 a 1 1 5 s full sparse 5 5 s 0000000000000000000000000 i find x 返回矩阵x的非零元素的位置 按照列数优先的原则选取 i j find x 返回矩阵x的非零元素的所在行和所在列的位置 按照列数优先的原则表述 i j v find x 除了返回矩阵x的非零元素的行列之外 还返回矩阵中非零元素的值 按照列数优先的原则表述 x 0200 3006 0070 0002 i find x i 25111416 x 0200 3006 0070 0002 ij find x i 21324j 12344 x 0200 3006 0070 0002 ijv find x i 21324j 12344v 32762 3 稀疏矩阵的操作n nnz s 返回矩阵s中非零元素的个数 d nnz s prod size s 表示稀疏矩阵s中非零元素的密度 prod表示矩阵s行数与列数的乘积 既表明s中元素的总个数 nonzeros返回非零值 x 0200 3006 0070 0002 n nnz x n 5 x 0200 3006 0070 0002 d nnz x prod size x d 0 3125 x 0200 3006 0070 0002 nonzeros x ans 32762 r spones s 生成一个与稀疏矩阵s结构相同的稀疏矩阵r 但是矩阵s中的非零元素都用1替代 issparse s 判断s是否是稀疏矩阵 返回1则说明矩阵s是稀疏矩阵 返回0则说明矩阵s不是稀疏矩阵 x 0200 3006 0070 0002 spones x ans 2 1 1 1 2 1 3 3 1 2 4 1 4 4 1 x 0200 3006 0070 0002 issparse x ans 0 issparse sparse x ans 1 4 稀疏矩阵的图形显示为了形象地显示稀疏矩阵的密度 可以用稀疏矩阵图像化函数spy 其语法格式如下 spy s 输出任意稀疏矩阵的图形 其横坐标表示列数 纵坐标表示行数 该图形中对非零元素相应的坐标显示一个圆点 圆点的颜色为蓝色 圆点大小与非零元素的数值无关 对于矩阵中零元素相应位置显示空白 spy s markersize 通过markersize改变圆点大小 spy s linespec markersize 通过linespec改变标记的类型和颜色 a 100900 030050 003004 200000 a 100900030050003004200000 spy a a 100900 030050 003004 200000 a 100900030050003004200000 spy a 35 a 100900 030050 003004 200000 a 100900030050003004200000spy a 20 a 100900 030050 003004 200000 a 100900030050003004200000spy a o 20 a 100900 030050 003004 200000 a 100900030050003004200000spy a 20 2 6多项式运算 多项式 polynomial 1 多项式的四则运算多项式的四则运算主要是加 减 乘 除运算 加减运算时向量的大小必须相等 没项的用零补 乘法运算t conv t1 t2 除法运算 tr deconv t1 t2 t多项式相除后的商向量 r多项式相除后的余向量 x 123 y 234 z conv x y z 27161712 x 123 y 27161712 t r deconv y x t 234r 00000 2 多项式的导数和微分多项式的导数运算用函数polyder实现 其调用方式为 k polyder p 返回多项式p的导数 k仍是一系数多项式 k polyder a b 返回多项式a与多项式b乘积的导数 k仍是一系数多项式 p q polyder a b 返回多项式a除以b的商的导数 并以p q的格式表示 参照商的导数规则 c poly2sym b 命令实现多项式符号化 c poly2sym b v 自变量用先定义好的符号变量v指定 x 123 y 27161712 p q polyder y x p 41952787227q 1410129 a 2345 b polyder a c poly2sym b c 6 x 2 6 x 4 b poly2sym a y Undefinedfunctionorvariable y symsy b poly2sym a y b 2 y 3 3 y 2 4 y 5 a 123 b 234 k polyder conv a b k 8213217 k polyder a b k 8213217 a 1234 b 12 p q polyder a b p 2882q 144 多项式的积分运算是采用polyint函数来实现的 其调用方式如下 k polyint p m 返回多项式p的积分 设积分的常数项为m k polyint p 返回多项式p的积分 设积分的常数项为零 a 123 k poly a 8 k polyint a 8 k 0 33331 00003 00008 0000 k polyint a k 0 33331 00003 00000 3 多项式的估值运算多项式的估值 即求给定点的多项式函数的值 用polyval p s 和polyvalm p s 来实现 后者实现的是矩阵运算 a 250414 b polyval a 34 b 9343400 b polyvalm a 34 Errorusing polyvalmat29Matrixmustbesquare a 250414 polyval a 12 34 ans 161669343400 polyvalm a 12 34 ans 31664608691210078 a 250414 polyval a 12 34 56 ans 161669343400948422186 polyvalm a 12 34 56 Errorusing polyvalmat29Matrixmustbesquare 4 多项式的根和由根创建多项式多项式的求根运算使用函数roots来实现 其调用格式如下 r roots c 返回多项式c的所有根r t 2345 b roots t b 1 3711 0 0644 1 3488i 0 0644 1 3488i 与多项式求根相反的过程是由根创建多项式 其调用格式如下 p poly r r为向量时 返回以r为根的多项式系数 p poly A A为方阵时 返回以A的特征值为根的多项式系数 A x k x a 12 p poly a p 1 32 b 12 34 p poly b p 1 0000 5 0000 2 0000 5 多项式部分分式展开函数residue可以将多项式之比用部分分式展开 也可以将一个部分分式表示为多项式之比 其调用格式如下 r p k residue a b 返回多项式之比a b的部分分式展开 参照下面公式 a b residue r p k 返回部分分式的多项式向量 a 23 41 b 1 32 r p k residue a b r 21 2p 21k 29 r 21 2 p 2 1 k 29 c d residue r p k c 23 41d 1 32 6 多项式的拟合多项式拟合用polyfit x y n 来实现 n是拟合多项式的阶次 x linspace 0 2 pi 100 y cos x t polyfit x y 6 y1 polyval t x plot x y go x y1 b x linspace 0 2 pi 100 y cos x t polyfit x y 3 y1 polyval t x plot x y go x y1 b 7 曲线拟合图形用户接口为了方便用户的使用 MATLAB7 0提供了支持曲线拟合的图形用户接口 它位于 Figure 窗口的 Tool BasicFitting 菜单中 为了使用该工具 首先用代拟合的数据画图 x 0 0 2 10 y 0 25 x 20 sin x plot x y ro 2 7数据分析2 7 1基本数据操作函数 1 max与min函数使用方法完全一样 max a min a 中a为向量时 输出单个最大 小 值 a为矩阵时 输出矩阵每列的最大 小 元素 y i max a y i min a 同上 只是多输出最大 小 元素在向量中或在矩阵中的最大 小 值下标 按列优先的原则 max a b min a b 对比两个矩阵的元素 输出最大 小 值 a 250417 min a ans 0 yi min a y 0i 3 a 250417 max a ans 7 yi max a y 7i 6 b 12 34 min b ans 12 max b ans 34 b 12 34 yi min b y 12i 11 yi max b y 34i 22 a 2615 b 4108 min a b ans 2105 max a b ans 4618 a 153 214 b 312 718 min a b ans 112214 max a b ans 353718 min函数的应用如图所示的一个用围墙围起来的场地 构建面积为1600平方米 围墙成本 弯曲部分每米40元 直边部分每米30元 使用min函数确定 当分辨率为0 01米时 使围墙成本最小所需的R和L值 并计算最小成本 解 根据题意有2 R l 0 5 pi R R 1600W 40 pi R 30 l l 2R 化简W 40 pi R 15 3200 4 pi R R R MATLAB实现最小值求解 R 0 01 0 01 31 92 W 40 pi R 15 3200 4 pi R R R Wmin i min W Wmin 5 1575e 003i 1861 R 1861 ans 18 6100 l 3200 pi 18 61 18 61 4 18 61l 28 3714 2 mean和median函数mean median函数用于求向量或矩阵中元素的平均值 中值 mean a 中a为向量则输出元素平均值 若为矩阵则输出每列元素平均值 median命令是先按升序或降序排列 如果是奇数个数的话 则取中间的数值 如是偶数个数的话 则取中间两个数的平均值 a 250417 mean a ans 3 1667 median a ans 3 a 26542 median a ans 4 a 265424 median a ans 4 a 26542459 median a ans 4 5000 3 sum和prod函数sum a prod a 中a为向量则返回所有元素的和 积 若为矩阵则返回每列的和 积 a 250417 sum a ans 19 prod a ans 0 4 sort函数Sort a 中a为向量 返回从小到大排列的向量 为矩阵返回个列从小到大排序的矩阵 y i sort a 中i返回新矩阵中元素在原矩阵中的脚标 数组排序 sort x 命令将数组x中的元素按升序排列 当x是多维数组时 命令是将x中各列元素按升序排列 当x是一个字符型单元数组 命令是将x中的元素按ASC 码升序排列 当x数据类型是复数 命令将按各元素的模升序排列 a 837 390 648 y i sort a y 330647898i 212331123 5 三角函数 2 7 2有限差分类函数 1 diff函数diff函数用于求差分和近似导数 diff a 中a为向量 则返回 a 2 a 1 a n a n 1 若为矩阵 则返回矩阵每列的差分 diff a n 返回向量或矩阵中第一个非独立维的n阶差分或导数值 a 2428 9532 diff a ans 711 6 diff a 1 ans 711 6 diff a 2 ans 60 7 diff a 3 ans 6 7 diff a 4 ans 13 diff a 5 ans 2 gradient函数gradient函数用于求近似梯度 df gradient f 中f是向量 返回f的数值梯度 fx fy gradient f 中f是矩阵 返回f的数值梯度 fx相当于df dx fy相当于df dy 习题课1 1 求的值 2 求2 5和5 2的值 3 求 12 21 11 02 和 12 21 11 02 的值 4 求 12 21 2和 12 21 2的值 5 用两种方法求20 100的线性向量间隔为4 6 求1 1000间分10个点的对数分布向量 7 已知x为1 10的整数 写出求y x x2 x3 1 sinx 2 的解法 8 已知a 1426731834 写出a 5 的结果 写出输出78的命令 写出输出8137的命令 写出输出748的命令 写出输出3172的命令 写出1834的命令 9 已知a 1426731834 分别对a进行升序和降序排列 10 写出求向量点积和叉积的命令 并说出进行两种运算时对向量的要求 11 写出求矩阵行列式的命令 并说出对矩阵的要求 12 写出求矩阵秩和求逆阵的命令 13 先讨论2 12 34 2 12 34 12 34 2 12 34 2哪些能输出结果 然后写出结果 14 用矩阵除法解线性方程组AX B 并讨论线性方程组可否写成XA B的形式 为什么 15 写出矩阵的指数运算 自然对数运算 开方运算的命令 并对矩阵提出要求 16 已知a 123456 234567 如何把它写成一个3 4的矩阵 结果是多少 17 已知a 123 456 789 如何把a进行顺时针270度的旋转 结果是多少 18 已知a 123 456 789 如何实现a的上下翻转 结果是多少 19 已知a 123 456 789 如何实现a的左右翻转 结果是多少 20 如何生成矩阵 1000 0100 0010 21 写出diag 123 2 和diag 123 1 的结果 22 已知a 1234 5678 4567 5678 如何从a中提取矩阵 678 567 23 已知a 123 456 如何把矩阵a写成向量 123456 24 已知a 12 34 b 56 78 分别使用矩阵水平连接和竖直连接命令合并a b并分别写出结果 25 分别写出length 123 456 和numel 12 34 的结果 26 写出sparse命令的几种用法 并分别举例说明 27 写出 i j v find x 的含义 并举例说明 28 写出稀疏矩阵中返回非零元素的函数 并举例说明 29 写出speye 4 和speye 4 8 的结果 他们是否代表相同的矩阵 30 用函数ones和diag分别编写下列矩阵 1111111 1333331 1355531 1357531 1355531 1333331 1111111 可用a 2 6 2 6 b的矩阵重组命令 45600 34560 23456 02345 00234 31 用多项式的方法求解方程 32 求多项式x6 5x3 7x 7与多项式x4 6x 8的和的多项式 33 求多项式x6 5x3 7x 7与多项式x4 6x 8的差的多项式 34 求多项式x6 5x3 7x 7与多项式x4 6x 8的积的多项式 35 求多项式x6 5x3 7x 7除以多项式x4 6x 8的结果 36 采用多项式估值运算方法计算多项式x6 5x3 7x 7当x 123 和x 12 34 时的值 37 分别采用3次曲线和6次曲线拟合正弦函数 并画出其图形进行比较 38 写出多项式x6 5x3 7x 7求导后的多项式 39 用两种方法求解多项式x2 2x 3与多项式x3 3x 5乘积求导后的多项式 40 求解多项式x2 2x 3与多项式x 2的商的导数 并输出结果 41 写出多项式x6 5x3 7x 7积分后的多项式 并自己设常数项 42 求解根为 1234 的多项式 43 求解多项式 x2 3x 5 x2 3x 2 部分分式展开式 并写出结果 保留计算过程 44 写出如何把式子写成多项式相除的形式 并写出结果 45 已知a 1462 5312 7528 分别求出a中每行的最大及最小元素 并求出其所处的位置 46 已知a 52479 b 4835 写出求其中值的命令并写出结果 第3章单元数组和结构3 1单元数组 单元数组就是每一个元素为一个单元的数组 每个单元可以包含任意数据类型的MATLAB7 0数组 例如 单元数组的一个单元可以是一个实数矩阵 或是一个字符串数组 也可以是一个复向量数组 1 单元数组的生成直接生成单元数组 用类似矩阵的记号将给复杂的数据结构纳入一个变量之下 和矩阵中的圆括号表示下标类似 单元数组由大括号表示下标 左标志法 左标志法就是把单元标志 放在左边 c 1 1 abc c 1 2 eye 2 c 2 1 12 34 c 2 2 12 cc abc 2x2double 2x2double 1x2double 右标志法 右标志法就是把单元标志 放在右边 c 1 1 abc c 1 2 eye 2 c 2 1 12 34 c 2 2 12 cc abc 2x2double 2x2double 1x2double 上面的单元数组也可由下面的方法直接得到 c abc eye 2 12 34 12 c abc 2x2double 2x2double 1x2double 要显示单元数组可以直接在命令窗口中输入单元数组的名字 也可以使用函数celldisp c 来输出 想得到单元数组中某一个单元的值时 可以采用c m n 或c m n 的格式输出 但是它们得到的结果表示形式是不同的 函数celldisp c 更适用于具有大量数据的单元数组的显示 c m n 和celldisp c 显示的结果形式相同 cc abc 2x2double 2x2double 1x2double celldisp c c 1 1 abcc 2 1 1234c 1 2 1001c 2 2 12 c 1 1 ans abc c 1 1 ans abc c 1 2 ans 2x2double c 1 2 ans 1001 c 2 1 ans 2x2double c 2 1 ans 1234 c 2 2 ans 1x2double c 2 2 ans 12 使用cell函数生成单元数组 cell n 生成一个n n阶的置空单元数组 cell m n 或cell m n 生成一个m n阶的置空单元数组 cell m n p 或cell m n p 生成一个m n p 阶的置空单元数组 cell size a 生成与a同形式的单元型置空矩阵 a cell 2 a a 1 1 12 22 或a 1 1 12 22 a 2x2double a 1 2 MATLAB7 0 a 2x2double MATLAB7 0 a 2 1 peking a 2x2double MATLAB7 0 peking a 2 2 12 a 2x2double MATLAB7 0 peking 1x2double 2 单元数组的操作celldisp a 显示单元型变量a的内容 celldisp a name 在窗口中显示的单元型变量的内容的名称为name a 12 123 23 234 celldisp a hh hh 1 1 12hh 2 1 23hh 1 2 123hh 2 2 234 h cellplot c 返回一个向量 这个向量综合体现了表面 线和句柄 h cellplot c legend 返回一个向量 这个向量综合体现了表面 线和句柄 并有图形注释 a 12 22 MATLAB7 0 peking 12 h cellplot a h 152 0029153 0024154 0024155 0024156 0024157 0024158 0024 a 12 22 MATLAB7 0 peking 12 h cellplot a legend h 152 0035153 0026154 0026155 0026156 0026157 0026158 0026 使用c a b 将两个单元数组集成一个更大的数组 使用c n 删除单元数组的第n行 reshape x m n 和reshape x m n 将单元数组x的所有元素分配到一个m n的单元数组 但单元数组元素不是m n时 返回错误信息 行列数不相等的话 仍是按列优先的原则 3 2结构型变量 结构体是根据属性名组织起来的不同类型数据的集合 结构体和单元数组的共同之处在于它们都提供了一种分级存储机制来存储不同类型的数据 不同之处是组织数据的方式不一样 结构体数组里的数据是通过属性名来引用的 而在单元数组里 数据是通过单元数组下标引用来操作的 1 结构型变量的生成直接输入法 采用直接输入法时 在给结构体成员元素直接赋值的同时定义该元素的名称 并使用点儿将结构型变量和成员元素名连接 student test 995696876769877692 student name HuangLiang student weight 67 student height 1 68 student num 034093 student add Schoolofcivilengneering Tsinghuauniversity student tel输入student会出现 studentstudent test 995696876769877692 name HuangLiang weight 67height 1 6800num 34093add Schoolofcivilengneering Tsinghuauniversity tel可以通过以下形式语句添加新的结构变量 另外的学生数据 student 2 test 996588787698759659 系统将默认之前的student为student 1 student 2 name WeiHuan student 2 weight 50 student 2 height 1 58 studen 2 t num 034999 student 2 num 034999 student 2 add SchoolofPsychology Chongqinguniversity student 2 tel 02361701456 此时 输入student将只得到该结构的成员变量名而不显示内容 studentstudent 1x2structarraywithfields testnameweightheightnumaddtel 可以继续在窗口中输入student 1 和student 2 来查询其具体内容 student 2 ans test 996588787698759659 name WeiHuan weight 50height 1 5800num 34999add SchoolofPsychology Chongqinguniversity tel 02361701456 使用struct函数生成结构变量Struct array struct field v1 field2 v2 其中 field为各成员变量名 v1等为对应的各成员变量的内容 但是必须配对出现 student struct test 996588787698759659 name WeiHuan weight 50 height 1 5800 student test 996588787698759659 name WeiHuan weight 50height 1 5800 student struct test 996588787698759659 name WeiHuan weight 50 height Errorusing structFieldandvalueinputargumentsmustcomeinpairs student struct fen 86 g

温馨提示

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

评论

0/150

提交评论