MATLAB 语言基础.ppt_第1页
MATLAB 语言基础.ppt_第2页
MATLAB 语言基础.ppt_第3页
MATLAB 语言基础.ppt_第4页
MATLAB 语言基础.ppt_第5页
已阅读5页,还剩106页未读 继续免费阅读

下载本文档

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

文档简介

第2章MATLAB语言基础 2 1基本概念2 1 1MATLAB数据类型 数值型数据分成整型和浮点型 整型数据主要为图像处理等特殊的应用问题提供数据类型 对一般数值运算 绝大多数情况是采用双精度浮点型的数据 MATLAB对不同数据类型的变量在程序中被引用时 不用事先对变量的数据类型进行定义或说明 系统会依据变量被赋值的类型自动进行类型识别 这样简化了程序 但使运行时间加长 2 1 2常量与变量常量 是程序语句中取不变值的量 数值常量 0 568字符串常量 s TomorrowandTomorrow 特殊常量 由系统默认给定一个符号来表示 MATLAB特殊常量i或j 虚数单位 定义为i2 j2 1Inf或inf 正无穷大 由零做除数引入此常量NaN 不定式 NotaNumber 表示非数值量 产生于0 0 0 等运算pi 圆周率 的双精度表示eps 容差变量 当某量的绝对值小于eps时 可认为此量为零 即为浮点数的最小分辨率 PC上此值为2 52Realmin或realmin 最小浮点数 2 1022Realmax或realmax 最大浮点数 21023 2 变量 在程序运行中其值可以改变的量 变量由变量名来表示 MATLAB中变量名的命名规则 变量名必须以字母开头 且只能由字母 数字或者下画线3类符号组成 不能含有空格和标点符号等 2 变量名区分字母的大小写 例如 a 和 A 是不同的变量 3 变量名不能超过63个字符 第63个字符后的字符被忽略 4 关键字 如if while等 不能作为变量名 5 最好不要用特殊常量符号作变量名 常见的错误命名如f x y y a 2 2A等 2 1 3标量 向量 矩阵与数组 1 数组 数组不是一个数学量 而是用于高级语言程序设计的概念 二维数组的数学原型是矩阵 数组元素按一维线性方式组织在一起 即为一维数组 一维数组的数学原型是向量 MATLAB中 数组直接采用运算符 有自己独立的运算符和运算法则 2 矩阵 MATLAB将矩阵作为基本运算量 可以直接实现矩阵的简单加减乘除以及与矩阵相关的其他运算 3 向量 矩阵的特例 MATLAB中 n维的行向量是一个1 n阶的矩阵 而列向量则当成n 1阶的矩阵 4 标量 MATLAB中 既可视为简单变量 又可当成1 1阶的矩阵 5 MATLAB中 二维数组和矩阵的数据结构形式相同 但运算方式不同 即 二维数组和矩阵的表示 建立 存储根本没有区别 区别只在它们的运算符和运算法则不同 6 数组的维和向量的维 数组的维是从数组元素排列后所形成的空间结构去定义的 线性结构是一维 平面结构是二维 立体结构是三维 还有四维以至多维 向量的维相当于一维数组中的元素个数 2 1 4字符串字符串在MATLAB中用单引号来标示的 例 S IHaveaDream 内是一个字符串 S是字符串变量 在MATLAB中 字符串的存储是按其中字符逐个顺序单一存放的 且存放的是它们各自的ASCII码 字符串实际可视为一个字符数组 其中的每个字符则是这个数组的一个元素 2 1 5运算符 算术 关系和逻辑运算符1 算术运算符 1 矩阵算术运算符 2 数组算术运算符 数组的运算都是元素间的运算 即对应下标元素一对一的运算 2 关系运算符 3 逻辑运算符 4 运算符的优先级 2 1 6命令 函数 表达式和语句1 命令 如clear2 函数 包括基本函数和各种工具箱 最一般的引用格式是 函数名 参数1 参数2 例 sin A 3 表达式用多种运算符将常量 变量 函数等多种运算对象连接起来构成的运算式子就是MATLAB的表达式 例 A B C sin A pi A B C sin A pi 4 语句表达式本身即可视为一个语句 典型的语句是赋值语句 其一般的结构是 变量名 表达式 例 F A B C sin A pi 2 2向量运算2 2 1向量的生成直接输入法 向量名 a1 a2 a3 例 A 2 3 4 5 6 B 1 2 3 4 5 C 456789 A 23456B 12345C 456789 逗号的作用之一 矩阵一行中各元素间的分隔符 分号的作用之一 矩阵中行与行的分隔符 2 冒号表达式法a1 step ana1为向量的第一个元素 an为向量最后一个元素的限定值 step是变化步长 省略步长时系统默认为1 例 A 1 2 10 B 1 10 C 10 1 1 D 10 2 4 E 2 1 10 F 0 2 7A 13579B 12345678910C 10987654321D Emptymatrix 1 by 0E Emptymatrix 1 by 0F 02468 注 an未必是生成的向量的最后一个元素 3 函数法 1 线性等分 linspace A linspace a1 an n a1是向量的首元素 an是向量的尾元素 n把a1至an之间的区间分成向量的首尾之外的其他n 2个元素 其步进为 an a1 n 1 省略n则默认生成100个元素的向量 例 A linspace 1 50 B linspace 1 30 10 2 对数等分A logspace a1 an n a1是向量首元素的幂 即A 1 10a1 an是向量尾元素的幂 即A n 10an n是向量的维数 省略n则默认生成50个元素的对数等分向量 例 A logspace 0 49 B logspace 0 4 5 冒号 a1 step an 与linspace a1 an n 的区别 1 冒号表达式中 an不一定恰好是向量的最后一个元素 而linspace表达式中 an一定是尾元素 2 a1与an确定时 冒号表达式依据步长确定向量个数 linspace则是依据向量个数确定步长 3 实际应用时 同时限定尾元素和步长去生成向量 有时可能会出现矛盾 此时必须做出取舍 2 2 2向量的加减和数乘运算维数相同的行向量之间可以相加减 维数相同的列向量也可相加减 标量数值可以与向量直接相加减 乘除 标量与向量间的乘除运算就是数乘 维数不同的行向量或列向量间不可以加减运算 A 12345 B 3 7 C linspace 2 4 3 AT A BT B A 12345B 34567C 234AT 12345BT 34567 E1 A B E2 A B F AT BT G1 3 A G2 B 3 G3 3 A H A C E1 4681012E2 2 2 2 2 2F 2 2 2 2 2G1 3691215G2 1 00001 33331 66672 00002 3333G3 45678 Errorusing plusMatrixdimensionsmustagree 2 2 3向量的点 叉积运算1 点积运算 dot A B 参与运算的两向量各对应位置上元素相乘后 再将各乘积相加 结果是一标量而非向量 例如功的运算 运算函数 dot A B A B是维数相同的两向量 A 1 3 B linspace 1 3 3 AT A BT B A 123B 123AT 123BT 123 e dot A B f dot AT BT e 14f 14 2 叉积运算 cross A B 向量A B的叉积是一新向量C C的方向垂直于A与B所决定的平面 用三维坐标表示时A Axi Ayj AzkB Bxi Byj BzkC A B AyBz AzBy i AzBx AxBz j AxBy AyBx k叉积运算的函数 cross A B 该函数计算的是A B叉积后各分量的元素值 且A B只能是三维向量 例如洛仑兹力的计算 A 1 3 B 3 5 E cross A B F cross B A A 123B 345E 24 2F 2 42 A 1 4 B 3 6 C 12 D 34 A 1234B 3456C 12D 34 E cross A B F cross C D Errorusing crossAandBmusthaveatleastonedimensionoflength3 cross A C Errorusing crossAandBmustbesamesize 3 混合积运算该运算也只能发生在三维向量之间 A 123 B 334 C 321 D dot C cross A B A 123B 334C 321D 4 2 3矩阵运算MATLAB中各种运算的对象就是矩阵 标量只是矩阵的特例 2 3 1矩阵元素的存储次序MATLAB规定矩阵元素在存储器中的存放次序是按列的先后顺序存放 即存完第1列后 再存第2列 依次类推 一维数组或者说向量元素是依其元素本身的先后次序进行存储 2 3 2矩阵元素的表示及相关操作1 元素的下标表示法 1 全下标方式 用行下标和列下标来标示矩阵中的一个元素 对一个m n阶的矩阵A 其第i行 第j列的元素用全下标方式就表示成A i j 2 单下标方式 将矩阵元素按存储次序的先后用单个数码顺序地连续编号 全下标元素A i j 对应的单下标表示便是A s 其中s j 1 m i 判别方法 括号 中是否有逗号 A 123 654 879 A 123654879 A 2 3 A 6 ans 4ans 7显示矩阵中全下标元素A 2 3 和单下标元素A 6 的值 A 1 2 3 ans 34显示矩阵A第1 2两行的第3列的元素值 A 6 8 ans 734显示矩阵A单下标第6 8号元素 用一向量表示一下标区间 2 矩阵元素的赋值 1 全下标方式 在给矩阵的单个或多个元素赋值时 采用全下标方式接收 clear A 1 2 1 3 111 111 A 111111 A 3 3 2A 111111002给原矩阵中并不存在的元素下标赋值会扩充矩阵阶数 注意补0的原则 2 单下标方式 A 3 6 111 1 用一向量给单下标表示的连续多个矩阵元素赋值A 111111 1 12 A 3 0 A 6 0 用单下标对单一元素赋值A 111111002 3 全元素方式 将矩阵B的所有元素全部赋值给矩阵A 即A B 不要求A B同阶 只要求元素个数相等 A 1 9A 147258369 A 3 4 16 B 111213 141516 171819 000 A 1470258036916B 111213141516171819000 将4 3阶矩阵B按列全部赋给3 4阶矩阵A A BA 110181614120191715130 3 矩阵元素的删除用空矩阵 用 表示 将矩阵中的单个元素 某行 某列 某矩阵子块及整个矩阵中的元素删除 clear A 2 3 2 3 11 22 A 000011022 A 2 A 000022删除A矩阵的第2行 可表示所有行或列 A 1 2 A 0202删除新矩阵A的前两个单下标元素 矩阵变成向量 A A 删除所有元素 2 3 3矩阵的创建MATLAB中 矩阵与其他量区别 矩阵的所有元素必须放在方括号 内 每行的元素之间需用逗号或空格隔开 矩阵的行与行之间用分号或回车符分隔 元素可以是数值或表达式 1 直接输入法 x 27 y 3 A 123 456 B 2 3 4 7 8 9 12 2 6 1 14 C 34578x y101112 A B C A 123456 B 234789121314 C 345789101112 2 抽取法 从大矩阵中抽取出需要的小矩阵 或子矩阵 1 用全下标方式 clear A 1234 5678 9101112 13141516 A 12345678910111213141516 取矩阵A行数为1 3 列数为2 3的元素构成子矩阵B B A 1 3 2 3 B 23671011 取矩阵A行数为1 3 列数为2 4的元素构成子矩阵CC A 13 24 C 241012 取矩阵A第4行 所有列 可表示所有行或列 D A 4 D 13141516 取2 4行 最后列 用 end 表示某一维数中的最大值E A 24 end E 816 2 用单下标方式 clear A 1234 5678 9101112 13141516 A 12345678910111213141516 B A 4 6 357 12 14 B 132692101548 C A 4 5 7 10 13 C注 必须在单下标引用中的最外层加上一对方括号分号不能少 3 拼接法 小矩阵拼成大矩阵 注意行列匹配 A 123 456 789 B 98 76 54 C 456 789 A 123456789B 987654C 456789 E AB BA E 123984567678954981237645654789 F A C F 123456789456789 4 函数法 zeros m n 生成m n阶的全0矩阵ones m n 生成m n阶的全1矩阵rand m n 生成取值在0 1之间满足均匀分布的随机矩阵randn m n 生成满足正态分布的随机矩阵eye m n 生成m n阶的单位矩阵如m n 则可简写 如zeros m ones m 等 magic m 生成魔方矩阵 A ones 3 4 B eye 3 4 C magic 3 D eye 3 A 111111111111B 100001000010 C 816357492D 100010001 formatrat D hilb 3 E pascal 4 D 11 21 31 21 31 41 31 41 5E 1111123413610141020HILB N istheNbyNmatrixwithelements1 i j 1 formatrat 即formatrational 5 拼接函数和变形函数法 cat n A1 A2 A3 n 1时 表示沿行方向拼接 增加行 n 2 表示沿列方向拼接 增加列 A1 123 987 456 A2 A1 A1 123987456A2 194285376 cat 2 A1 A2 ans 123194987285456376 cat 1 A1 A2 A1 ans 123987456194285376123987456 repmat repmat A m n m和n分别是沿行和列方向重复拼接矩阵A的次数 A1A1 123987456 repmat A1 2 2 ans 123123987987456456123123987987456456 reshapereshape A m n m和n分别是变形后新矩阵的行列数 A linspace 2 18 9 A 24681012141618 B reshape A 3 3 B 28144101661218 a 20 2 24 b a a 202224b 202224 C Bb D reshape C 4 3 C 28142041016226121824D 21018412206142281624 6 加载法将已经存放在外存中的 mat文件读入MATLAB工作空间中 a6 magic 3 a6 816357492 savesam2 23a6 dir sam2 23 mat clear loadsam2 23a6 whosNameSizeBytesClassa63x372doublearrayGrandtotalis9elementsusing72bytes 7 M文件法M文件法和加载法相似 都是将保存在外存中的矩阵读入内存工作空间中 不同点在于加载法读入的是数据文件 mat 而M文件法读入的是内容仅为矩阵的 m文件 在程序设计中 当矩阵的规模较大 而这些矩阵又要经常被引用时 先用直接输入法将某个矩阵准确无误地赋值给一个程序中会被反复引用的矩阵 且用M文件将其保存 每当用到该矩阵时 就只需在程序中引用该M文件即可 例 mfile 2 3 4矩阵的代数运算1 求矩阵行列式的值 determinant det A A 324 1 15 2 13 D1 det A A 3241 152 13D1 24 B ones 3 D2 det B C pascal 4 D3 det C B 111111111D2 0C 1111123413610141020D3 1 矩阵必须是方阵 2 矩阵加减 数乘与乘法 A 13 2 1 B 30 12 A Bans 4331 2 Aans 264 2 2 A 3 Bans 761 8 两矩阵相加减就是对应的元素相加减 注意 两矩阵的阶数必须相同 矩阵与标量相加减 MATLAB自动把该标量扩展成同阶等元素矩阵进行相加减 即将矩阵的所有元素与该标量逐一进行加减 矩阵与标量相乘 矩阵的所有元素与该标量逐一进行加乘 矩阵的乘法A n p阶矩阵B p m阶矩阵C A B n m阶矩阵 其任一元素C i j 的值为A阵的第i行和B阵的第j列对应元素乘积的和 C i j A i 1 B 1 j A i 2 B 2 j A i p B p j kA i k B k j 矩阵相乘有定义的前提是两矩阵内阶相等 a a11a12a13a21a22a23 b b11b12b21b22b31b32 c a ba11 b11 a12 b21 a13 b31a11 b12 a12 b22 a13 b32a21 b11 a22 b21 a23 b31a21 b12 a22 b22 a23 b32 d b ab11 a11 b12 a21b11 a12 b12 a22b11 a13 b12 a23b21 a11 b22 a21b21 a12 b32 a22b21 a13 b22 a23b31 a11 b32 a21b31 a12 b32 a22b31 a13 b32 a23 a a11a12a13 b b11b21b31 c a ba11 b11 a12 b21 a13 b31 d b ab11 a11b11 a12b11 a13b21 a11b21 a12b21 a13b31 a11b31 a12b31 a13 a 816357c1 a bc1 1876970184136110101163 b 16231351110897612 c2 b a Errorusing mtimesInnermatrixdimensionsmustagree 3 求矩阵的逆矩阵 inverse 对于任意n n方阵A 如果能找到一个同阶的方阵V 使AV I 其中I为n阶的单位矩阵eye n 则V就是A的逆矩阵 用数学符号表示为 V A 1 逆矩阵V的存在条件 行列式det A 的值不等于0 如果矩阵A的det A 0 那么A称为奇异矩阵 MATLAB中逆矩阵V的求解函数 V inv A A 101 212 046 A 101212046 formatrat A1 inv A A1 1 32 3 1 6 2104 3 2 31 6 A1 Aans 100010001 4 矩阵的除法在线性代数中 本无除法 只有 逆矩阵A 1 矩阵除法是MATLAB从逆矩阵的概念引申来的 1 左除方程 D X B 其中X为未知矩阵 左乘inv D inv D D X inv D BI X inv D BX inv D B将D的逆阵左乘以B 记成D 称为 左除 所以X D B 求下列线性方程组的解 设X x1 x2 x3 x4 为列向量 矩阵A 14 76 0211 0113 101 1 B 0 8 2 1 为列向量 则方程形式为AX B 其求解过程用左除 X A B A 14 76 0211 0113 101 1 B 0 8 2 1 x A BA 14 7602110113101 1B 0 8 21x 3 4 11 A xans 0 0000 8 0000 2 00001 0000 inv A Bans 3 0000 4 0000 1 00001 0000 2 右除方程 X D B 其中X为未知矩阵 右乘inv D X D inv D B inv D X I B inv D X B inv D 将D的逆阵右乘以B 记成 D 称为 右除 所以X B D 设X x1x2x3x4 为行向量 矩阵A 1001 4210 7111 613 1 矩阵B 0 8 21 为行向量 则方程形式为XA B 其求解过程用右除X B A A 1001 4210 7111 613 1 B 0 8 21 x B AA 10014210 7111613 1B 0 8 21x 3 0000 4 0000 1 00001 0000 B inv A ans 3 0000 4 0000 1 00001 0000 5 求矩阵的秩6 求矩阵的特征值与特征向量 Eigenvaluesandeigenvectors 矩阵的乘幂与开方矩阵的乘幂 运算符 底数是矩阵 指数是标量 这就是矩阵与自身相乘 为保证内阶数相同 底数矩阵必须是方阵 底数是标量 指数是矩阵 指数矩阵必须是方阵 底数是矩阵 指数是矩阵 出错矩阵的开方 Matrixsquareroot 运算的依据在于开方所得矩阵相乘正好等于被开方的矩阵 开方函数 sqrtm A A 1 33 3 53 6 64 A 3ans 28 363636 443672 7264 A A Aans 28 363636 443672 7264 3 Aans 40 5556 40 444440 444440 4444 40 333340 444480 8889 80 888981 0000 A 1 2ans 1 7097 0 6752i 3 5683 0 6752i3 5683 0 6752i3 5683 0 6752i 5 4270 2 0256i3 5683 0 6752i7 1367 1 3504i 7 1367 1 3504i5 2780 0 0000i A 1 33 3 53 6 64 A1 sqrtm A A1 1 0000 0 7071i 1 0000 0 7071i1 0000 0 7071i1 0000 0 7071i 1 0000 2 1213i1 0000 0 7071i2 0000 1 4142i 2 0000 1 4142i2 0000 0 0000i A1 2ans 1 0000 3 0000 0 0000i3 00003 0000 0 0000i 5 0000 0 0000i3 0000 0 0000i6 0000 0 0000i 6 0000 0 0000i4 0000 0 0000i A magic 3 A 816357492 sqrtm A 2ans 8 0000 0 0000i1 0000 0 0000i6 0000 0 0000i3 0000 0 0000i5 0000 0 0000i7 0000 0 0000i4 0000 0 0000i9 0000 0 0000i2 0000 0 0000i sqrtm A 2 ans 8 26603 36703 36703 36708 26603 36703 36703 36708 2660 8 矩阵的指数与对数矩阵的指数与对数运算也是以矩阵为整体而非针对元素的运算 矩阵的指数与对数运算是一对互逆的运算 矩阵指数运算函数 expm 矩阵对数运算函数 logm 以e为底 A 1 11 2 41 1 53 A 1 112 411 53 Ae expm A Ae 1 3719 3 70254 48100 3987 2 34952 9241 2 5254 7 61389 5555 Ae1 logm Ae Ae1 1 0000 1 00001 00002 0000 4 00001 00001 0000 5 00003 0000 9 矩阵转置共轭转置 运算符为 非共轭转置 运算符为transpose 实矩阵 共轭转置与非共轭转置的效果没有区别 复矩阵 共轭转置是在转置的同时实现共轭 而转置不进行共轭操作 a 1 9a 123456789 A reshape a 3 3 A 147258369 B A B 123456789 Z A i BZ 1 0000 1 0000i4 0000 2 0000i7 0000 3 0000i2 0000 4 0000i5 0000 5 0000i8 0000 6 0000i3 0000 7 0000i6 0000 8 0000i9 0000 9 0000i Z A i BZ 1 0000 1 0000i4 0000 2 0000i7 0000 3 0000i2 0000 4 0000i5 0000 5 0000i8 0000 6 0000i3 0000 7 0000i6 0000 8 0000i9 0000 9 0000i Z ans 1 0000 1 0000i2 0000 4 0000i3 0000 7 0000i4 0000 2 0000i5 0000 5 0000i6 0000 8 0000i7 0000 3 0000i8 0000 6 0000i9 0000 9 0000i transpose Z ans 1 0000 1 0000i2 0000 4 0000i3 0000 7 0000i4 0000 2 0000i5 0000 5 0000i6 0000 8 0000i7 0000 3 0000i8 0000 6 0000i9 0000 9 0000i 10 矩阵的提取与翻转 triu A 提取矩阵A的右上三角 triangular 元素 其余元素补0tril A 提取矩阵A的左下三角元素 其余元素补0diag A 提取矩阵A的对角线 Diagonal 元素flipud A 矩阵A沿水平轴上下翻转 flip fliplr A 矩阵A沿垂直轴左右翻转flipdim A dim 矩阵A沿特定轴翻转 dim 1 按行翻转 dim 2 按列翻转rot90 A 矩阵A整体逆时针旋转90 a linspace 1 23 12 a 1357911131517192123 A reshape a 4 3 A 1357911131517192123 diag A ans 11121 triu A ans 13570111315002123 tril A ans 1000911001719210 A 1357911131517192123 flipud A ans 1719212391113151357 fliplr A ans 7531151311923211917 rot90 A ans 7152351321311191917 flipdim A 1 ans 1719212391113151357 flipdim A 2 ans 7531151311923211917 2 4数组运算MATLAB中 数组的运算法是针对其中每一个元素的 数组之间的运算讲究元素的一一对应 因而数组之间的加减乘除就直接在元素之间对应展开 而无需用到循环语句 优点 利用数组结构可以简化同类运算 例如将同类对象组织在一个数组中 再对它实施某种函数操作 一次批量解决问题 2 4 1多维数组元素的存储次序二维数组 与矩阵相同 按列优先 多维数组 按页优先 例 一个3 2 2数组 2 4 2多维数组的创建一维数组 向量二维数组 矩阵三维以上数组 下标赋值法 工具阵函数法 拼接和变形函数法 1 下标赋值法 2 工具阵函数法 zeros ones rand和randn3 拼接和变形函数法 cat repmat reshape 2 4 3数组的代数算术 数组的运算都是元素间的运算 即对应下标元素一对一的运算 1 数组的加减 数乘与乘法一维数组的加减乘运算 A1 654321 B1 123456 C1 A1 B1 C2 C1 B1 C3 A1 B1C1 777777C2 654321C3 6101212106 二维数组的加减乘运算 A2 reshape A1 2 3 B2 reshape B1 2 3 A2 642531B2 135246 D1 A2 B2 D2 3 A2 D3 A2 B2D1 777777D2 181261593D3 6121010126 2 数组的除法 D1D1 777777 D1 4ans 1 75001 75001 75001 75001 75001 7500 4 D1ans 0 57140 57140 57140 57140 57140 5714 A magic 3 A 816357492 B reshape 1 9 3 3 B 147258369 A Bans 8 00000 25000 85711 50001 00000 87501 33331 50000 2222 A Bans 0 12504 00001 16670 66671 00001 14290 75000 66674 5000 3 数组的乘幂与开方 和sqrt A 123 456 A2p A 2 App A 1 5A2p 149162536App 1 00002 82845 19628 000011 180314 6969 As sqrt A As 1 00001 41421 73212 00002 23612 4495 Appl sqrt A 3 Appl 1 00002 82845 19628 000011 180314 6969 4 数组的指数与对数 exp 和log A 123 456 A 123456 Ae exp A Al log A Ae 2 71837 389120 085554 5982148 4132403 4288Al 00 69311 09861 38631 60941 7918 以e为底 5 数组或矩阵的单纯转置 a 123 456 b 234 567 A a i bA 1 0000 2 0000i2 0000 3 0000i3 0000 4 0000i4 0000 5 0000i5 0000 6 0000i6 0000 7 0000i B1 a B1 142536 B2 A B2 1 0000 2 0000i4 0000 5 0000i2 0000 3 0000i5 0000 6 0000i3 0000 4 0000i6 0000 7 0000i B3 a B3 142536 2 4 4数组的关系与逻辑运算关系与逻辑运算可以视为矩阵运算 也可视为数组运算 关系逻辑运算是元素一对一的关系比较或逻辑运算 参与关系与逻辑运算的两矩阵必须同阶 1 数组的关系运算 A magic 5 A 17241815235714164613202210121921311182529 mod A 3 ans 2012022121101211010020120 p mod A 3 0p 0100100000010000101101001 P p 0P 1011011111101111010010110 mos Modulusafterdivision 2 数组的逻辑运算 A pascal 3 B eye 3 A 111123136B 100010001 A Bans 100010001 A Bans 111111111 Bans 011101110 xor A B ans 011101110 3 与逻辑运算相关的函数all A n 分行 列判断A中每行 列元素是否全非0 是则该行 列取1 非则取0 n 1 表列向判断 n 2 表行向判断any A n 分行 列判断A中每行 列元素是否有非0 是则该行 列取1 非则取0 n 1 表列向判断 n 2 表行向判断isnan A 判断A中各元素是否为非数值量 NaN 是则取1 非则取0isinf A 判断A中各元素是否为无穷大 是则取1 非则取0isnumeric A 判断A的元素是否全为数值量 是则返回结果1 非为0isreal A 判断A的元素是否全为实数量 是则返回结果1 非为0isempty A 判断A是否为空阵 是则返回结果1 非为0find A 用单下标表示返回数组A中非0元素的下标值 A 123 045 890 A 123045890 all A 1 ans 010 all A 2 ans 100 B 1 4B 1234 any B ans 1 any B 1 ans 1111 any B 2 ans 1 isnan A ans 000000000 isnumeric A ans 1 2 4 5数组和矩阵函数的通用形式矩阵函数运算的通用形式 就是借用数组函数名来实现针对矩阵整体的运算 数组的对数运算函数 log矩阵A的对数函数 funm A log 与logm A 等效 A 234 567 8910 A 2345678910 B1 log A B1 0 69311 09861 38631 60941 79181 94592 07942 19722 3026 B2 logm A B2 5 6505 2 7009i12 5368 0 5236i 5 4411 0 6065i12 8377 0 8393i 23 1773 2 1444i13 1385 1 1551i 4 8395 1 2380i13 4393 1 4708i 4 4472 1 4379i B funm A log B 5 6505 2 7009i12 5368 0 5236i 5 4411 0 6065i12 8377 0 8393i 23 1773 2 1444i13 1385 1 1551i 4 8395 1 2380i13 4393 1 4708i 4 4472 1 4379i 基本数学函数 基本三角函数 特殊函数 以5 为间隔利用sin 函数结合数组求正弦函数表 ang 0 5 90 angle ang pi 180 sin angle ans Columns1through1700 08720 17360 25880 34200 42260 50000 57360 64280 70710 76600 81920 86600 90630 93970 96590 9848Columns18through190 99621 0000 ang 0 5 90 angle ang pi 180 ang 0 5 90 angle pi 180 ang angle 0 5 pi 180 90 pi 180angle 0 5 90 pi 180 在Matlab中 角度的单位是弧度 2 5字符串运算MATLAB和C语言一样 将字符串视为一个一维字符数组对待 因此针对字符串的运算或操作 对字符数组同样有效 2 5 1字符串变量与一维字符数组字符串与一维字符数组在运算处理和操作过程中是等价的 当把某个字符串赋值给一个变量后 当观察MATLAB的工作空间窗口时 字符串变量的类型是字符数组类型 即chararray 从工作空间窗口去观察字符串变

温馨提示

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

评论

0/150

提交评论